SFP connection issue on BPI-R3

Now we have a OpenWrt snapshots for R3 which

1G and 2.5G modes supported

I 'm trying to connect a GPON ONU stick which only works at 1000M
I use the following ethtool command to set speed mode on SFP1:

ethtool -s eth1 speed 1000 duplex full autoneg off  

But I cant see any changes after this command. Here is SFP port info

Settings for eth1:
        Supported ports: [ MII ]
        Supported link modes:   2500baseX/Full 
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  Not reported
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: No
        Advertised FEC modes: Not reported
        Speed: Unknown!
        Duplex: Unknown! (255)
        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

At the moment I’m guessing that the port speed needs to be adjusted to properly connect to GPON stick, can anyone who is also using such device tell me how I need to change this configuration? Or is there something else I’m missing?

The supported speed of a SFP module is auto-detected by parsing the I2C EEPROM exposed by the module. Ie. you should see that the port switches to 1000Base-X when inserting the module. I’ve tried this with multiple 1000Base-T (RJ-45) SFP modules, with good reaults.

Please share complete bootlog, we should see what’s going on.

For many GPON modules I’ve seen this is not enough, as they are only lowering the LOS signal if there is an actual PON link. Hence you would need to “force the link up” which is generally not supported yet but Linux’ SFP code.

Thank you for reply. Here is my bootlog

EXT_CSD[179], PARTITION_CONFIG:
BOOT_ACK: 0x1
BOOT_PARTITION_ENABLE: 0x1
PARTITION_ACCESS: 0x0
EXT_CSD[179], PARTITION_CONFIG:
BOOT_ACK: 0x1
BOOT_PARTITION_ENABLE: 0x1
PARTITION_ACCESS: 0x0
No size specified -> Using max size (85073920)
Read 85073920 bytes from volume fit to 0000000046000000

## Checking Image at 46000000 ...
   FIT image found
   FIT description: ARM64 OpenWrt FIT (Flattened Image Tree)
    Image 0 (kernel-1)
     Description:  ARM64 OpenWrt Linux-5.15.74
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x46001000
     Data Size:    5221439 Bytes = 5 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x44000000
     Entry Point:  0x44000000
     Hash algo:    crc32
     Hash value:   20e81e19
     Hash algo:    sha1
     Hash value:   9511ce4abada9c8c42a9826b7870b3424b972c31
    Image 1 (fdt-1)
     Description:  ARM64 OpenWrt bananapi_bpi-r3 device tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x464fc000
     Data Size:    32768 Bytes = 32 KiB
     Architecture: AArch64
     Load Address: 0x43ff8000
     Hash algo:    crc32
     Hash value:   63127f08
     Hash algo:    sha1
     Hash value:   a00d33951f62b33677cc0b5172fa81be816d55e5
    Image 2 (fdt-mt7986a-bananapi-bpi-r3-nor)
     Description:  ARM64 OpenWrt bananapi_bpi-r3 device tree overlay mt7986a-bananapi-bpi-r3-nor
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x46504000
     Data Size:    32768 Bytes = 32 KiB
     Architecture: AArch64
     Load Address: 0x43ff0000
     Hash algo:    crc32
     Hash value:   95d48956
     Hash algo:    sha1
     Hash value:   1c93f277ffa3aecc5aef781cd3d6c72297d961d5
    Image 3 (fdt-mt7986a-bananapi-bpi-r3-emmc-nor)
     Description:  ARM64 OpenWrt bananapi_bpi-r3 device tree overlay mt7986a-bananapi-bpi-r3-emmc-nor
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x4650c000
     Data Size:    32768 Bytes = 32 KiB
     Architecture: AArch64
     Load Address: 0x43fe8000
     Hash algo:    crc32
     Hash value:   9310ba5d
     Hash algo:    sha1
     Hash value:   b6e94c2825be3781ded07624307ce50d34ad99b0
    Image 4 (fdt-mt7986a-bananapi-bpi-r3-emmc-snand)
     Description:  ARM64 OpenWrt bananapi_bpi-r3 device tree overlay mt7986a-bananapi-bpi-r3-emmc-snand
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x46514000
     Data Size:    32768 Bytes = 32 KiB
     Architecture: AArch64
     Load Address: 0x43fe0000
     Hash algo:    crc32
     Hash value:   da7d197c
     Hash algo:    sha1
     Hash value:   492fb21cbdbf4af0442980102056351626624123
    Image 5 (fdt-mt7986a-bananapi-bpi-r3-snand)
     Description:  ARM64 OpenWrt bananapi_bpi-r3 device tree overlay mt7986a-bananapi-bpi-r3-snand
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x4651c000
     Data Size:    32768 Bytes = 32 KiB
     Architecture: AArch64
     Load Address: 0x43fd8000
     Hash algo:    crc32
     Hash value:   fb982ffd
     Hash algo:    sha1
     Hash value:   9285448f7112ebbe6616709a852e74de03136bda
    Image 6 (rootfs-1)
     Description:  ARM64 OpenWrt bananapi_bpi-r3 rootfs
     Type:         Filesystem Image
     Compression:  uncompressed
     Data Start:   0x46524000
     Data Size:    79650816 Bytes = 76 MiB
     Hash algo:    crc32
     Hash value:   75d81ba0
     Hash algo:    sha1
     Hash value:   94a1128521ea7807bd78681bce51fa5609f6182c
    Default Configuration: 'config-mt7986a-bananapi-bpi-r3'
    Configuration 0 (config-mt7986a-bananapi-bpi-r3)
     Description:  OpenWrt bananapi_bpi-r3
     Kernel:       kernel-1
     FDT:          fdt-1
     Loadables:    rootfs-1
    Configuration 1 (config-mt7986a-bananapi-bpi-r3-nor)
     Description:  OpenWrt bananapi_bpi-r3 with mt7986a-bananapi-bpi-r3-nor
     Kernel:       kernel-1
     FDT:          fdt-1
                   fdt-mt7986a-bananapi-bpi-r3-nor
     Loadables:    rootfs-1
    Configuration 2 (config-mt7986a-bananapi-bpi-r3-emmc-nor)
     Description:  OpenWrt bananapi_bpi-r3 with mt7986a-bananapi-bpi-r3-emmc-nor
     Kernel:       kernel-1
     FDT:          fdt-1
                   fdt-mt7986a-bananapi-bpi-r3-emmc-nor
     Loadables:    rootfs-1
    Configuration 3 (config-mt7986a-bananapi-bpi-r3-emmc-snand)
     Description:  OpenWrt bananapi_bpi-r3 with mt7986a-bananapi-bpi-r3-emmc-snand
     Kernel:       kernel-1
     FDT:          fdt-1
                   fdt-mt7986a-bananapi-bpi-r3-emmc-snand
     Loadables:    rootfs-1
    Configuration 4 (config-mt7986a-bananapi-bpi-r3-snand)
     Description:  OpenWrt bananapi_bpi-r3 with mt7986a-bananapi-bpi-r3-snand
     Kernel:       kernel-1
     FDT:          fdt-1
                   fdt-mt7986a-bananapi-bpi-r3-snand
     Loadables:    rootfs-1
## Checking hash(es) for FIT Image at 46000000 ...
   Hash(es) for Image 0 (kernel-1): crc32+ sha1+ 
   Hash(es) for Image 1 (fdt-1): crc32+ sha1+ 
   Hash(es) for Image 2 (fdt-mt7986a-bananapi-bpi-r3-nor): crc32+ sha1+ 
   Hash(es) for Image 3 (fdt-mt7986a-bananapi-bpi-r3-emmc-nor): crc32+ sha1+ 
   Hash(es) for Image 4 (fdt-mt7986a-bananapi-bpi-r3-emmc-snand): crc32+ sha1+ 
   Hash(es) for Image 5 (fdt-mt7986a-bananapi-bpi-r3-snand): crc32+ sha1+ 
   Hash(es) for Image 6 (rootfs-1): crc32+ sha1+ 
## Loading kernel from FIT Image at 46000000 ...
   Using 'config-mt7986a-bananapi-bpi-r3-emmc-snand' configuration
   Trying 'kernel-1' kernel subimage
     Description:  ARM64 OpenWrt Linux-5.15.74
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x46001000
     Data Size:    5221439 Bytes = 5 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x44000000
     Entry Point:  0x44000000
     Hash algo:    crc32
     Hash value:   20e81e19
     Hash algo:    sha1
     Hash value:   9511ce4abada9c8c42a9826b7870b3424b972c31
   Verifying Hash Integrity ... crc32+ sha1+ OK
## Loading fdt from FIT Image at 46000000 ...
   Using 'config-mt7986a-bananapi-bpi-r3-emmc-snand' configuration
   Trying 'fdt-1' fdt subimage
     Description:  ARM64 OpenWrt bananapi_bpi-r3 device tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x464fc000
     Data Size:    32768 Bytes = 32 KiB
     Architecture: AArch64
     Load Address: 0x43ff8000
     Hash algo:    crc32
     Hash value:   63127f08
     Hash algo:    sha1
     Hash value:   a00d33951f62b33677cc0b5172fa81be816d55e5
   Verifying Hash Integrity ... crc32+ sha1+ OK
   Loading fdt from 0x464fc000 to 0x43ff8000
## Loading fdt from FIT Image at 46000000 ...
   Trying 'fdt-mt7986a-bananapi-bpi-r3-emmc-snand' fdt subimage
     Description:  ARM64 OpenWrt bananapi_bpi-r3 device tree overlay mt7986a-bananapi-bpi-r3-emmc-snand
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x46514000
     Data Size:    32768 Bytes = 32 KiB
     Architecture: AArch64
     Load Address: 0x43fe0000
     Hash algo:    crc32
     Hash value:   da7d197c
     Hash algo:    sha1
     Hash value:   492fb21cbdbf4af0442980102056351626624123
   Verifying Hash Integrity ... crc32+ sha1+ OK
   Booting using the fdt blob at 0x43ff8000
## Loading loadables from FIT Image at 46000000 ...
   Trying 'rootfs-1' loadables subimage
     Description:  ARM64 OpenWrt bananapi_bpi-r3 rootfs
     Type:         Filesystem Image
     Compression:  uncompressed
     Data Start:   0x46524000
     Data Size:    79650816 Bytes = 76 MiB
     Hash algo:    crc32
     Hash value:   75d81ba0
     Hash algo:    sha1
     Hash value:   94a1128521ea7807bd78681bce51fa5609f6182c
   Verifying Hash Integrity ... crc32+ sha1+ OK
   Uncompressing Kernel Image
   Loading Device Tree to 00000000bf7f0000, end 00000000bf7fa097 ... OK
Add '[email protected]' node failed: FDT_ERR_EXISTS

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.15.74 ([email protected]) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 11.3.0 r21117-5384c9337f) 11.3.0, GNU ld (GNU Binutils) 2.37) #0 SMP Thu Oct 27 23:16:00 2022
[    0.000000] Machine model: Bananapi BPI-R3
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x00000000bfffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000042ffffff]
[    0.000000]   node   0: [mem 0x0000000043000000-0x000000004302ffff]
[    0.000000]   node   0: [mem 0x0000000043030000-0x000000004fbfffff]
[    0.000000]   node   0: [mem 0x000000004fc00000-0x000000004fcfffff]
[    0.000000]   node   0: [mem 0x000000004fd00000-0x00000000bfffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x00000000bfffffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 17 pages/cpu s29592 r8192 d31848 u69632
[    0.000000] pcpu-alloc: s29592 r8192 d31848 u69632 alloc=17*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: kernel page table isolation disabled by kernel configuration
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
[    0.000000] Kernel command line: root=/dev/ubiblock0_2p1
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 2043528K/2097152K available (8128K kernel code, 880K rwdata, 2132K rodata, 384K init, 292K bss, 53624K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 640 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x000000000c080000
[    0.000000] arch_timer: cp15 timer(s) running at 13.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2ff89eacb, max_idle_ns: 440795202429 ns
[    0.000000] sched_clock: 56 bits at 13MHz, resolution 76ns, wraps every 4398046511101ns
[    0.000136] Calibrating delay loop (skipped), value calculated using timer frequency.. 26.00 BogoMIPS (lpj=130000)
[    0.000144] pid_max: default: 32768 minimum: 301
[    0.000227] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.000241] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.001120] rcu: Hierarchical SRCU implementation.
[    0.001205] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build
[    0.001402] smp: Bringing up secondary CPUs ...
[    0.001634] Detected VIPT I-cache on CPU1
[    0.001656] GICv3: CPU1: found redistributor 1 region 0:0x000000000c0a0000
[    0.001682] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.001941] Detected VIPT I-cache on CPU2
[    0.001953] GICv3: CPU2: found redistributor 2 region 0:0x000000000c0c0000
[    0.001964] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.002184] Detected VIPT I-cache on CPU3
[    0.002194] GICv3: CPU3: found redistributor 3 region 0:0x000000000c0e0000
[    0.002204] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.002230] smp: Brought up 1 node, 4 CPUs
[    0.002244] SMP: Total of 4 processors activated.
[    0.002247] CPU features: detected: 32-bit EL0 Support
[    0.002250] CPU features: detected: CRC32 instructions
[    0.002326] CPU: All CPU(s) started at EL2
[    0.002336] alternatives: patching kernel code
[    0.004584] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.004606] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.004717] pinctrl core: initialized pinctrl subsystem
[    0.005154] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.005364] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    0.005395] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.005422] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.005647] thermal_sys: Registered thermal governor 'fair_share'
[    0.005650] thermal_sys: Registered thermal governor 'bang_bang'
[    0.005654] thermal_sys: Registered thermal governor 'step_wise'
[    0.005656] thermal_sys: Registered thermal governor 'user_space'
[    0.005830] ASID allocator initialised with 65536 entries
[    0.006070] pstore: Registered ramoops as persistent store backend
[    0.006074] ramoops: using [email protected], ecc: 0
[    0.014401] cryptd: max_cpu_qlen set to 1000
[    0.016063] SCSI subsystem initialized
[    0.016139] libata version 3.00 loaded.
[    0.016896] clocksource: Switched to clocksource arch_sys_counter
[    0.017297] NET: Registered PF_INET protocol family
[    0.017413] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.017952] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.017972] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.017979] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.018046] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
[    0.018205] TCP: Hash tables configured (established 16384 bind 16384)
[    0.018281] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.018307] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.018405] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.018426] PCI: CLS 0 bytes, default 64
[    0.020234] workingset: timestamp_bits=46 max_order=19 bucket_order=0
[    0.022170] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.022183] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.044805] pwm-mediatek 10048000.pwm: clock: top fail: -517
[    0.045080] mtk-pcie-gen3 11280000.pcie: host bridge /soc/[email protected] ranges:
[    0.045100] mtk-pcie-gen3 11280000.pcie: Parsing ranges property...
[    0.045109] mtk-pcie-gen3 11280000.pcie:      MEM 0x0020000000..0x002fffffff -> 0x0020000000
[    0.045154] phy phy-soc:[email protected]: u3 auto load valid efuse: ENABLE with value: 1
[    0.045181] phy phy-soc:[email protected]: pcie auto load valid efuse: ENABLE with value: 1
[    0.045203] phy phy-soc:[email protected]: u3 lane1 efuse - intr 29, rx_imp 11, tx_imp 10
[    0.045258] /soc/[email protected]: Failed to get clk index: 0 ret: -517
[    0.045267] mtk-pcie-gen3 11280000.pcie: failed to get clocks
[    0.047363] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[    0.047860] printk: console [ttyS0] disabled
[    0.068018] 11002000.serial: ttyS0 at MMIO 0x11002000 (irq = 122, base_baud = 2500000) is a ST16650V2
[    0.764872] printk: console [ttyS0] enabled
[    0.789607] 11003000.serial: ttyS1 at MMIO 0x11003000 (irq = 123, base_baud = 1625000) is a ST16650V2
[    0.799402] mtk_rng 1020f000.trng: registered RNG driver
[    0.799459] hwrng: no data available
[    0.804930] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.816216] loop: module loaded
[    0.820359] spi-nand spi0.0: Winbond SPI NAND was found.
[    0.825666] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
[    0.833950] 4 fixed-partitions partitions found on MTD device spi0.0
[    0.840298] Creating 4 MTD partitions on "spi0.0":
[    0.845072] 0x000000580000-0x000008000000 : "ubi"
[    0.978309] 0x000000380000-0x000000580000 : "fip"
[    0.985354] 0x000000080000-0x000000380000 : "reserved"
[    0.993883] 0x000000000000-0x000000080000 : "bl2"
[    1.014407] mtk_soc_eth 15100000.ethernet eth0: mediatek frame engine at 0xffffffc009500000, irq 132
[    1.023766] mtk_soc_eth 15100000.ethernet eth1: mediatek frame engine at 0xffffffc009500000, irq 132
[    1.033245] i2c_dev: i2c /dev entries driver
[    1.038878] mtk-wdt 1001c000.watchdog: Watchdog enabled (timeout=31 sec, nowayout=0)
[    1.047222] NET: Registered PF_INET6 protocol family
[    1.052821] Segment Routing with IPv6
[    1.056495] In-situ OAM (IOAM) with IPv6
[    1.060456] NET: Registered PF_PACKET protocol family
[    1.065515] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    1.078706] 8021q: 802.1Q VLAN Support v1.8
[    1.083680] pstore: Using crash dump compression: deflate
[    1.094152] mtk-pcie-gen3 11280000.pcie: host bridge /soc/[email protected] ranges:
[    1.101489] mtk-pcie-gen3 11280000.pcie: Parsing ranges property...
[    1.107755] mtk-pcie-gen3 11280000.pcie:      MEM 0x0020000000..0x002fffffff -> 0x0020000000
[    1.116214] phy phy-soc:[email protected]: u3 auto load valid efuse: ENABLE with value: 1
[    1.124310] phy phy-soc:[email protected]: pcie auto load valid efuse: ENABLE with value: 1
[    1.132573] phy phy-soc:[email protected]: u3 lane1 efuse - intr 29, rx_imp 11, tx_imp 10
[    1.201672] mtk-msdc 11230000.mmc: phase: [map:ffffffff] [maxlen:32] [final:10]
[    1.210617] mmc0: new HS400 MMC card at address 0001
[    1.216356] mmcblk0: mmc0:0001 008GB0 7.28 GiB 
[    1.223206]  mmcblk0: p1
[    1.226498] mmcblk0boot0: mmc0:0001 008GB0 4.00 MiB 
[    1.232220] mmcblk0boot1: mmc0:0001 008GB0 4.00 MiB 
[    1.237374] mmcblk0rpmb: mmc0:0001 008GB0 4.00 MiB, chardev (251:0)
[    1.356909] mtk-pcie-gen3 11280000.pcie: PCIe link down, ltssm reg val: 0x1000001
[    1.364398] mtk-pcie-gen3: probe of 11280000.pcie failed with error -110
[    1.393426] mt7530 mdio-bus:1f: configuring for fixed/2500base-x link mode
[    1.400573] mt7530 mdio-bus:1f: Link is Up - 2.5Gbps/Full - flow control rx/tx
[    1.409514] mt7530 mdio-bus:1f wan (uninitialized): PHY [mt7530-0:00] driver [MediaTek MT7531 PHY] (irq=140)
[    1.429258] mt7530 mdio-bus:1f lan1 (uninitialized): PHY [mt7530-0:01] driver [MediaTek MT7531 PHY] (irq=141)
[    1.448803] mt7530 mdio-bus:1f lan2 (uninitialized): PHY [mt7530-0:02] driver [MediaTek MT7531 PHY] (irq=142)
[    1.468329] mt7530 mdio-bus:1f lan3 (uninitialized): PHY [mt7530-0:03] driver [MediaTek MT7531 PHY] (irq=143)
[    1.487863] mt7530 mdio-bus:1f lan4 (uninitialized): PHY [mt7530-0:04] driver [MediaTek MT7531 PHY] (irq=144)
[    1.498461] DSA: tree 0 setup
[    1.503603] UBI: auto-attach mtd0
[    1.506925] ubi0: default fastmap pool size: 45
[    1.511440] ubi0: default fastmap WL pool size: 22
[    1.516211] ubi0: attaching mtd0
[    5.141247] ubi0: scanning is finished
[    5.186369] ubi0: attached mtd0 (name "ubi", size 122 MiB)
[    5.191865] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    5.198723] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    5.205488] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[    5.212431] ubi0: good PEBs: 980, bad PEBs: 0, corrupted PEBs: 0
[    5.218423] ubi0: user volume: 5, internal volumes: 1, max. volumes count: 128
[    5.225623] ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
[    5.233951] ubi0: available PEBs: 0, total reserved PEBs: 980, PEBs reserved for bad PEB handling: 20
[    5.243151] ubi0: background thread "ubi_bgt0d" started, PID 422
[    5.249211] FIT: Selected configuration: "config-mt7986a-bananapi-bpi-r3-emmc-snand" (OpenWrt bananapi_bpi-r3 with mt7986a-bananapi-bpi-r3-emmc-snand)
[    5.262682] FIT:           kernel sub-image 0x00001000..0x004fbc3e "kernel-1" (ARM64 OpenWrt Linux-5.15.74) 
[    5.272495] FIT:          flat_dt sub-image 0x004fc000..0x00503fff "fdt-1" (ARM64 OpenWrt bananapi_bpi-r3 device tree blob) 
[    5.283695] FIT:          flat_dt sub-image 0x00504000..0x0050bfff "fdt-mt7986a-bananapi-bpi-r3-nor" (ARM64 OpenWrt bananapi_bpi-r3 device tree overlay mt7986a-bananapi-bpi-r3-nor) 
[    5.299839] FIT:          flat_dt sub-image 0x0050c000..0x00513fff "fdt-mt7986a-bananapi-bpi-r3-emmc-nor" (ARM64 OpenWrt bananapi_bpi-r3 device tree overlay mt7986a-bananapi-bpi-r3-emmc-nor) 
[    5.316847] FIT:          flat_dt sub-image 0x00514000..0x0051bfff "fdt-mt7986a-bananapi-bpi-r3-emmc-snand" (ARM64 OpenWrt bananapi_bpi-r3 device tree overlay mt7986a-bananapi-bpi-r3-emmc-snand) 
[    5.334200] FIT:          flat_dt sub-image 0x0051c000..0x00523fff "fdt-mt7986a-bananapi-bpi-r3-snand" (ARM64 OpenWrt bananapi_bpi-r3 device tree overlay mt7986a-bananapi-bpi-r3-snand) 
[    5.350685] FIT:       filesystem sub-image 0x00524000..0x05119fff "rootfs-1" (ARM64 OpenWrt bananapi_bpi-r3 rootfs) 
[    5.361273] FIT: selecting configured loadable "rootfs-1" to be root filesystem
[    5.368560]  ubiblock0_2: p1(rootfs-1)
[    5.368683] block ubiblock0_2: created from ubi0:2(fit)
[    5.403043] VFS: Mounted root (squashfs filesystem) readonly on device 259:0.
[    5.410299] Freeing unused kernel memory: 384K
[    5.466905] Run /sbin/init as init process
[    5.470986]   with arguments:
[    5.473936]     /sbin/init
[    5.476627]   with environment:
[    5.479758]     HOME=/
[    5.482102]     TERM=linux
[    6.130557] init: Console is alive
[    6.134035] init: - watchdog -
[    6.896907] random: crng init done
[    8.620229] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    8.805729] Key type encrypted registered
[    8.812974] usbcore: registered new interface driver usbfs
[    8.818497] usbcore: registered new interface driver hub
[    8.823821] usbcore: registered new device driver usb
[    8.831377] device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: [email protected]
[    8.842735] raid6: skip pq benchmark and using algorithm neonx8
[    8.848665] raid6: using neon recovery algorithm
[    8.853885] xor: measuring software checksum speed
[    8.861169]    8regs           :  3951 MB/sec
[    8.867613]    32regs          :  4678 MB/sec
[    8.874420]    arm64_neon      :  3986 MB/sec
[    8.878761] xor: using function: 32regs (4678 MB/sec)
[    9.148438] Btrfs loaded, crc32c=crc32c-generic, zoned=no, fsverity=no
[    9.162132] phy phy-soc:[email protected]: u2 auto load valid efuse: ENABLE with value: 1
[    9.170289] phy phy-soc:[email protected]: u3 auto load valid efuse: ENABLE with value: 1
[    9.178419] phy phy-soc:[email protected]: u2 auto load valid efuse: ENABLE with value: 1
[    9.186947] xhci-mtk 11200000.usb: xHCI Host Controller
[    9.192163] xhci-mtk 11200000.usb: new USB bus registered, assigned bus number 1
[    9.202625] xhci-mtk 11200000.usb: hcc params 0x01403f99 hci version 0x110 quirks 0x0000000000210010
[    9.211774] xhci-mtk 11200000.usb: irq 126, io mem 0x11200000
[    9.217602] xhci-mtk 11200000.usb: xHCI Host Controller
[    9.222812] xhci-mtk 11200000.usb: new USB bus registered, assigned bus number 2
[    9.230194] xhci-mtk 11200000.usb: Host supports USB 3.2 Enhanced SuperSpeed
[    9.237560] hub 1-0:1.0: USB hub found
[    9.241313] hub 1-0:1.0: 2 ports detected
[    9.245551] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    9.253858] hub 2-0:1.0: USB hub found
[    9.257655] hub 2-0:1.0: 1 port detected
[    9.265394] usbcore: registered new interface driver usb-storage
[    9.271679] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    9.286555] init: - preinit -
[    9.706906] usb 1-1: new high-speed USB device number 2 using xhci-mtk
[    9.887598] hub 1-1:1.0: USB hub found
[    9.891379] hub 1-1:1.0: 4 ports detected
[   10.760871] mtk_soc_eth 15100000.ethernet eth0: configuring for fixed/2500base-x link mode
[   10.769335] mtk_soc_eth 15100000.ethernet eth0: Link is Up - 2.5Gbps/Full - flow control rx/tx
[   10.797554] mt7530 mdio-bus:1f lan1: configuring for phy/gmii link mode
[   10.808892] mt7530 mdio-bus:1f lan1: Link is Up - 100Mbps/Full - flow control off
[   10.816389] IPv6: ADDRCONF(NETDEV_CHANGE): lan1: link becomes ready
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[   12.988043] mount_root: loading kmods from internal overlay
[   13.002038] kmodloader: loading kernel modules from //etc/modules-boot.d/*
[   13.017940] kmodloader: done loading kernel modules from //etc/modules-boot.d/*
[   15.278223] UBIFS (ubi0:4): Mounting in unauthenticated mode
[   15.283935] UBIFS (ubi0:4): background thread "ubifs_bgt0_4" started, PID 580
[   15.512534] UBIFS (ubi0:4): recovery needed
[   16.162154] UBIFS (ubi0:4): recovery completed
[   16.166638] UBIFS (ubi0:4): UBIFS: mounted UBI device 0, volume 4, name "rootfs_data"
[   16.174459] UBIFS (ubi0:4): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[   16.184354] UBIFS (ubi0:4): FS size: 23998464 bytes (22 MiB, 189 LEBs), max 199 LEBs, journal size 1142784 bytes (1 MiB, 9 LEBs)
[   16.195894] UBIFS (ubi0:4): reserved for root: 1133506 bytes (1106 KiB)
[   16.202492] UBIFS (ubi0:4): media format: w5/r0 (latest is w5/r0), UUID E7D9B8DA-12CC-4495-8451-D7EBAFE7D880, small LPT model
[   16.217608] block: attempting to load /tmp/ubifs_cfg/upper/etc/config/fstab
[   16.250620] block: extroot: not configured
[   16.254779] UBIFS (ubi0:4): un-mount UBI device 0
[   16.259490] UBIFS (ubi0:4): background thread "ubifs_bgt0_4" stops
[   16.274834] UBIFS (ubi0:4): Mounting in unauthenticated mode
[   16.280564] UBIFS (ubi0:4): background thread "ubifs_bgt0_4" started, PID 583
[   16.718306] UBIFS (ubi0:4): UBIFS: mounted UBI device 0, volume 4, name "rootfs_data"
[   16.726123] UBIFS (ubi0:4): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[   16.736016] UBIFS (ubi0:4): FS size: 23998464 bytes (22 MiB, 189 LEBs), max 199 LEBs, journal size 1142784 bytes (1 MiB, 9 LEBs)
[   16.747554] UBIFS (ubi0:4): reserved for root: 1133506 bytes (1106 KiB)
[   16.754147] UBIFS (ubi0:4): media format: w5/r0 (latest is w5/r0), UUID E7D9B8DA-12CC-4495-8451-D7EBAFE7D880, small LPT model
[   17.507271] block: attempting to load /tmp/ubifs_cfg/upper/etc/config/fstab
[   17.544008] block: extroot: not configured
[   17.557665] mount_root: switching to ubifs overlay
[   17.601299] overlayfs: null uuid detected in lower fs '/', falling back to xino=off,index=off,nfs_export=off.
[   17.630559] urandom-seed: Seeding with /etc/urandom.seed
Scanning for Btrfs filesystems
[   18.811214] mtdblock: MTD device 'reserved' is NAND, please consider using UBI block devices instead.
[   19.252659] mtdblock: MTD device 'bl2' is NAND, please consider using UBI block devices instead.
[   19.423230] mtdblock: MTD device 'fip' is NAND, please consider using UBI block devices instead.
[   20.960866] mt7530 mdio-bus:1f lan1: Link is Down
[   20.968564] procd: - early -
[   20.971482] procd: - watchdog -
[   21.627482] procd: - watchdog -
[   21.760724] procd: - ubus -
[   22.063808] procd: - init -
Please press Enter to activate this console.
[   23.850791] kmodloader: loading kernel modules from /etc/modules.d/*
[   23.851299] urngd: v1.0.2 started.
[   23.989060] async_tx: api initialized (async)
[   23.997957] tun: Universal TUN/TAP device driver, 1.6
[   24.025926] i2c-gpio i2c-gpio-0: using lines 427 (SDA) and 428 (SCL)
[   24.032615] i2c-gpio i2c-gpio-1: using lines 429 (SDA) and 430 (SCL)
[   24.041706] GACT probability on
[   24.045445] Mirror/redirect action on
[   24.052836] u32 classifier
[   24.055544]     input device check on
[   24.059217]     Actions configured
[   24.066958] fuse: init (API version 7.34)
[   24.072813] crypto-safexcel 10320000.crypto: EIP97:230(0,1,4,4)-HIA:270(0,5,5),PE:150/433(alg:7fcdfc00)/0/0/0
[   24.088191] Bridge firewalling registered
[   24.092936] Loading modules backported from Linux version v5.15.74-0-ga3f2f5ac9d61
[   24.100537] Backport generated by backports.git v5.15.74-1-0-ge2d78967
[   24.128905] sfp sfp1: Host maximum power 1.0W
[   24.134019] sfp sfp2: Host maximum power 1.0W
[   24.155367] xt_time: kernel timezone is -0000
[   24.569350] mt7986-wmac 18000000.wmac: HW/SW Version: 0x8a108a10, Build Time: 20220113162701a
[   24.569350] 
[   25.089648] mt7986-wmac 18000000.wmac: WM Firmware Version: ____000000, Build Time: 20220113162756
[   25.333908] mt7986-wmac 18000000.wmac: WA Firmware Version: DEV_000000, Build Time: 20220113163034
[   25.438333] sfp sfp1: please wait, module slow to respond
[   30.565917] EXT4-fs (mmcblk0p1): recovery complete
[   30.571722] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: . Quota mode: disabled.
[   45.926903] mt7986-wmac 18000000.wmac: Message 00000002 (seq 4) timeout
[   45.933518] mt7986-wmac 18000000.wmac: Failed to start WA firmware
[   45.939824] mt7986-wmac: probe of 18000000.wmac failed with error -110
[   45.949790] PPP generic driver version 2.4.2
[   45.954928] NET: Registered PF_PPPOX protocol family
[   45.962237] batman_adv: B.A.T.M.A.N. advanced 2022.2-openwrt-2 (compatibility version 15) loaded
[   45.972640] kmodloader: done loading kernel modules from /etc/modules.d/*
[   48.325327] mtdblock: MTD device 'bl2' is NAND, please consider using UBI block devices instead.
[   48.468225] mtdblock: MTD device 'reserved' is NAND, please consider using UBI block devices instead.
[   48.643309] mtdblock: MTD device 'fip' is NAND, please consider using UBI block devices instead.
[   48.812522] mtdblock: MTD device 'ubi' is NAND, please consider using UBI block devices instead.
[   55.714257] mtk_soc_eth 15100000.ethernet eth0: Link is Down
[   55.728837] mtk_soc_eth 15100000.ethernet eth0: configuring for fixed/2500base-x link mode
[   55.737262] mtk_soc_eth 15100000.ethernet eth0: Link is Up - 2.5Gbps/Full - flow control rx/tx
[   55.738315] mt7530 mdio-bus:1f lan1: configuring for phy/gmii link mode
[   55.755557] br-lan: port 1(lan1) entered blocking state
[   55.760836] br-lan: port 1(lan1) entered disabled state
[   55.767561] device lan1 entered promiscuous mode
[   55.772167] device eth0 entered promiscuous mode
[   55.779043] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   55.791900] mt7530 mdio-bus:1f lan2: configuring for phy/gmii link mode
[   55.801295] br-lan: port 2(lan2) entered blocking state
[   55.806517] br-lan: port 2(lan2) entered disabled state
[   55.813491] device lan2 entered promiscuous mode
[   55.822134] mt7530 mdio-bus:1f lan3: configuring for phy/gmii link mode
[   55.831550] br-lan: port 3(lan3) entered blocking state
[   55.836768] br-lan: port 3(lan3) entered disabled state
[   55.843845] device lan3 entered promiscuous mode
[   55.852596] mt7530 mdio-bus:1f lan4: configuring for phy/gmii link mode
[   55.862018] br-lan: port 4(lan4) entered blocking state
[   55.867247] br-lan: port 4(lan4) entered disabled state
[   55.874420] device lan4 entered promiscuous mode
[   55.883221] mt7530 mdio-bus:1f sfp2: configuring for inband/2500base-x link mode
[   55.891913] br-lan: port 5(sfp2) entered blocking state
[   55.897138] br-lan: port 5(sfp2) entered disabled state
[   55.904473] device sfp2 entered promiscuous mode
[   55.913082] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/2500base-x link mode
[   55.922504] br-wan: port 1(eth1) entered blocking state
[   55.927773] br-wan: port 1(eth1) entered disabled state
[   55.933171] device eth1 entered promiscuous mode
[   55.939027] br-wan: port 1(eth1) entered blocking state
[   55.944286] br-wan: port 1(eth1) entered forwarding state
[   55.951324] mt7530 mdio-bus:1f wan: configuring for phy/gmii link mode
[   55.960664] br-wan: port 2(wan) entered blocking state
[   55.965799] br-wan: port 2(wan) entered disabled state
[   55.972374] device wan entered promiscuous mode
[   56.378825] br-wan: port 1(eth1) entered disabled state
[   56.384422] device eth1 left promiscuous mode
[   56.388876] br-wan: port 1(eth1) entered disabled state
[   56.477897] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/2500base-x link mode
[   56.489123] device wan left promiscuous mode
[   56.493529] br-wan: port 2(wan) entered disabled state
[   56.788094] br-wan: port 1(eth1) entered blocking state
[   56.793337] br-wan: port 1(eth1) entered disabled state
[   56.798796] device eth1 entered promiscuous mode
[   56.805766] mt7530 mdio-bus:1f wan: configuring for phy/gmii link mode
[   56.815718] br-wan: port 2(wan) entered blocking state
[   56.820946] br-wan: port 2(wan) entered disabled state
[   56.827642] device wan entered promiscuous mode
[   56.863277] device eth1 left promiscuous mode
[   56.867817] br-wan: port 1(eth1) entered disabled state
[   56.987458] device wan left promiscuous mode
[   56.991856] br-wan: port 2(wan) entered disabled state
[   57.298066] br-wan: port 1(eth1) entered blocking state
[   57.303300] br-wan: port 1(eth1) entered disabled state
[   57.308782] device eth1 entered promiscuous mode
[   57.315497] mt7530 mdio-bus:1f wan: configuring for phy/gmii link mode
[   57.325201] br-wan: port 2(wan) entered blocking state
[   57.330350] br-wan: port 2(wan) entered disabled state
[   57.336907] device wan entered promiscuous mode
[   57.402490] mt7530 mdio-bus:1f lan1: Link is Up - 100Mbps/Full - flow control off
[   57.410524] br-lan: port 1(lan1) entered blocking state
[   57.415756] br-lan: port 1(lan1) entered forwarding state
[   57.421662] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   80.888309] sfp sfp1: failed to read EEPROM: -6

It seems that sfp1 is not reading eeprom correctly.

Looks like the module never responds to being probed. That’s worse than what I’ve seen till now. Does the module work with other Linux-based hosts?

Please share output of

ethtool -m eth1
cat /sys/kernel/debug/sfp1/state

After waiting for respond

[ 80.888309] sfp sfp1: failed to read EEPROM: -6

I got these reply

[email protected]:~# ethtool -m eth1
Cannot get Module EEPROM data: No such device or address
SFP module not in cage?
[email protected]:~# cat /sys/kernel/debug/sfp1/state
Module state: error
Module probe attempts: 10 12
Device state: up
Main state: down
Fault recovery remaining retries: 0
PHY probe remaining retries: 0
moddef0: 1
rx_los: 0
tx_fault: 0
tx_disable: 1

Not being correctly identified, although it works fine on my other enterprise router photo_2022-10-30_00-33-34 photo_2022-10-27_14-46-12

Did you have to force the link-speed also on that router?

No, link mode automatically detect to 1000 on that h3c device. It’s user manual shows that’s a 1GbE sfp port

… and you didn’t set that port to any specific link speed or “DAC mode” or anything like that, right?

I’m pretty sure I didn’t set that . Strange that I have seen in some Chinese communities using the same stick successfully on their openwrt router with sfp interface

Do you know how much current it draws? Linux limits sfp to 1w,bpi-r3 can more. Maybe you habe to tell linux give more power to it (do not know how,but see this message on bootup)

The 1.0W limit can only be enforced by Linux after parsing the module’s I2C EEPROM. And that already fails. So that won’t matter here, because we are not even getting that far. It’d be very interesting to see how this module behaves on other Linux hosts. If reading I2C EEPROM works with them, we have to investigate why it doesn’t on the R3. Could be I2C bus clock speed being either too high or too low, for example…

What happens next is that I use ponstick from ODI and Huawei on the same openwrt snapshot, works fine.
A very early conjecture is that openwrt does not adapt to eeprom decryption of natywish’s ponstick yet. For general users and beginners, at least for this board, I do not recommend buying this brand.

Could you try using the natywish stick on another linux host? And if it works post i2c-setting from sfp-cage from that board like daniel suggested?

Did you test that both can be used successfully? Where can I buy them?

Yes, if you don’t sure what variation of PON your ISP offered, you can find it on your modem’s label, or just buy a dual mode stick like ODI. I bought them on a domestic e-commerce site.

Sorry I don’t have any other linux platform with SFP port or adapters at the moment. A PCI-E card is already on shipping.

1 Like