Hi folks, I am using BPI-R4 with the 2.5GbE interface and there seems to be something fishy with the driver/firmware.
What happens is that the device is visible from the OS, but plugging the cable never brings the link up.
A quick thread in the banana-pi forum directs the investigation in the order of firmware loading during the boot process, for simplicity below the quoted reply
What I do see myself from the device is the following
root@BPI-R4:~# ethtool eth1
Settings for eth1:
Supported ports: [ ]
Supported link modes: 100baseT/Full
1000baseT/Full
2500baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 100baseT/Full
1000baseT/Full
2500baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Port: Twisted Pair
PHYAD: 15
Transceiver: external
Auto-negotiation: on
MDI-X: Unknown
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: no
root@BPI-R4:~# dmesg
[...]
[ 0.000000] Linux version 6.6.52 (builder@buildhost) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 13.3.0 r27608-3f98f68573) 13.3.0, GNU ld (GNU Binutils) 2.42) #0 SMP Sun Sep 29 22:04:34 2024
[ 0.000000] Machine model: Bananapi BPI-R4 2.5GE PoE
[...]
[ 3.807402] FIT: Detected U-Boot 2024.07-OpenWrt-r27466-f368e2d5ec
[ 3.813580] FIT: Selected configuration: "config-mt7988a-bananapi-bpi-r4-poe" (OpenWrt bananapi_bpi-r4-poe)
[ 3.823317] FIT: kernel sub-image 0x00001000..0x005a3441 "kernel-1" (ARM64 OpenWrt Linux-6.6.52)
[ 3.833052] FIT: flat_dt sub-image 0x005a4000..0x005ae9ae "fdt-1" (ARM64 OpenWrt bananapi_bpi-r4-poe device tree blob)
[ 3.844610] FIT: flat_dt sub-image 0x005af000..0x005af609 "fdt-mt7988a-bananapi-bpi-r4-emmc" (ARM64 OpenWrt bananapi_bpi-r4-poe device tree overlay mt7988a-bananapi-bpi-r4-emmc)
[ 3.861289] FIT: flat_dt sub-image 0x005b0000..0x005b011c "fdt-mt7988a-bananapi-bpi-r4-rtc" (ARM64 OpenWrt bananapi_bpi-r4-poe device tree overlay mt7988a-bananapi-bpi-r4-rtc)
[ 3.877792] FIT: flat_dt sub-image 0x005b1000..0x005b15c1 "fdt-mt7988a-bananapi-bpi-r4-sd" (ARM64 OpenWrt bananapi_bpi-r4-poe device tree overlay mt7988a-bananapi-bpi-r4-sd)
[ 3.894120] FIT: flat_dt sub-image 0x005b2000..0x005b28f0 "fdt-mt7988a-bananapi-bpi-r4-wifi-mt7996a" (ARM64 OpenWrt bananapi_bpi-r4-poe device tree overlay mt7988a-bananapi-bpi-r4-wifi-mt7996a)
[ 3.912182] FIT: filesystem sub-image 0x005b3000..0x00efbfff "rootfs-1" (ARM64 OpenWrt bananapi_bpi-r4-poe rootfs)
[ 3.923393] block mmcblk0p7: mapped 1 uImage.FIT filesystem sub-image as /dev/fit0
[ 3.931131] block mmcblk0p7: mapped remaining space as /dev/fitrw
[ 4.062656] mtk_soc_eth 15100000.ethernet: generated random MAC address 65:74:68:25:64:00
[ 4.075235] mtk_soc_eth 15100000.ethernet eth0: mediatek frame engine at 0xffffffc082880000, irq 103
[ 4.084923] mtk_soc_eth 15100000.ethernet eth1: mediatek frame engine at 0xffffffc082880000, irq 103
[ 4.094604] mtk_soc_eth 15100000.ethernet eth2: mediatek frame engine at 0xffffffc082880000, irq 103
[ 4.186789] mt7530-mmio 15020000.switch: configuring for fixed/internal link mode
[ 4.194301] mt7530-mmio 15020000.switch: Link is Up - 10Gbps/Full - flow control rx/tx
[ 4.221076] mt7530-mmio 15020000.switch wan (uninitialized): PHY [mt7530-0:00] driver [MediaTek MT7988 PHY] (irq=112)
[ 4.258805] mt7530-mmio 15020000.switch lan1 (uninitialized): PHY [mt7530-0:01] driver [MediaTek MT7988 PHY] (irq=113)
[ 4.296498] mt7530-mmio 15020000.switch lan2 (uninitialized): PHY [mt7530-0:02] driver [MediaTek MT7988 PHY] (irq=114)
[ 4.334518] mt7530-mmio 15020000.switch lan3 (uninitialized): PHY [mt7530-0:03] driver [MediaTek MT7988 PHY] (irq=115)
[...]
[ 13.851327] MediaTek MT7988 2.5GbE PHY mdio-bus:0f: Firmware date code: 0/0/0, version: 0.0
[ 13.867769] MediaTek MT7988 2.5GbE PHY mdio-bus:0f: Firmware loading/trigger ok.
[ 13.876094] mtk_soc_eth 15100000.ethernet eth1: PHY [mdio-bus:0f] driver [MediaTek MT7988 2.5GbE PHY] (irq=POLL)
[ 13.886346] mtk_soc_eth 15100000.ethernet eth1: configuring for phy/internal link mode
[ 13.895657] br-lan: port 1(eth1) entered blocking state
[ 13.900895] br-lan: port 1(eth1) entered disabled state
[ 13.906155] mtk_soc_eth 15100000.ethernet eth1: entered allmulticast mode
[ 13.913048] mtk_soc_eth 15100000.ethernet eth1: entered promiscuous mode
[...]
So initially the suspicion was
[ 13.851327] MediaTek MT7988 2.5GbE PHY mdio-bus:0f: Firmware date code: 0/0/0, version: 0.0
but I do have mt7988-2p5g-phy-firmware
installed.
Any ideas?