[BPI-R4] No link on 2.5G interface

This is mainline version of openwrt

@mkowalski I think we need to create a patch similar to what was done for mt76 - wifi txpower value is very low Β· Issue #17489 Β· openwrt/openwrt Β· GitHub . In short - BE14 owners might get a board with firmware on the board, so later the new firmware with better power regulations is ignored. I’m wondering if such a thing is possible also for 2.5G. WDYT @frank-w ?

Hi all, this is only to report that BPI-R4 2.5GbE is still not working in the latest snapshot. A bunch of outputs in case anyone wants to compare with theirs

# dmesg | head
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd090]
[    0.000000] Linux version 6.6.80 (builder@buildhost) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 13.3.0 r28941-d8315d5358) 13.3.0, GNU ld (GNU Binutils) 2.42) #0 SMP Wed Mar  5 20:16:05 2025
[    0.000000] Machine model: Bananapi BPI-R4 2.5GE PoE

# dmesg | grep -i 2.5GbE
[   18.092491] MediaTek MT7988 2.5GbE PHY mdio-bus:0f: Firmware date code: 2024/10/30, version: 10.0
[   18.109579] MediaTek MT7988 2.5GbE PHY mdio-bus:0f: Firmware loading/trigger ok.
[   18.117844] mtk_soc_eth 15100000.ethernet lan4: PHY [mdio-bus:0f] driver [MediaTek MT7988 2.5GbE PHY] (irq=POLL)
# ls -l /lib/firmware/mediatek/mt7988/i2p5ge-phy-pmb.bin
-rw-r--r--    1 root     root        131072 Mar  5 21:16 /lib/firmware/mediatek/mt7988/i2p5ge-phy-pmb.bin

# sha256sum /lib/firmware/mediatek/mt7988/i2p5ge-phy-pmb.bin
643157e984732eccad6aa5e1f80a2be82a6cbf747aac25b54c75eefeccaf8aec  /lib/firmware/mediatek/mt7988/i2p5ge-phy-pmb.bin
# ethtool lan4
Settings for lan4:
	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

Have you tried 24.10.1 ? I’ running on the POE board and also no success. Really pissed that I got this thing, big waste of time.

Older poe version boards had a hardware error. Current boards working.

1 Like

why this problem was so hidden? I recommended this router to a colleague, he just chose the PoE version and now I simply have a distaste. Neither sinovoip company feels responsible for the replacement, nor is there any possibility of repair. If anyone is reading this thread, I think they will probably avoid sinovoip products in the future.

My last 5 cents here… The whole story is a disgrace to the whole open source community. I don’t want to dig whether it’s cultural to not be able to say β€œsorry we screwed up, this is what happens now”, but it’s simply what should have happened already a year ago.

Since September 2024 people with β€œbanana-pi.org” email domain kept claiming β€œall is good my friend, all is good, we tested all is good”. Well surprise surprise, it is not :upside_down_face:

If someone wants to learn for the future, what should have happened is an RCA saying β€œhey folks, we just noticed the board model XYZ manufactured between XX/YY and XX/ZZ has hardware issue; to replace it please contact Jimmy”.

Because we are in the power-user community and we can assume there are people with more-than-average technical understanding, there should have been a second part saying β€œwhat happened is XYZ, we tried to fix it in software by doing ABC but we did not manage; as a result, we are changing DEF and it requires us to recall some boards”.

Anyway, good luck to everyone and I can only hope at least one person learned something from this mess.

1 Like

as the lack of answers from officials in the forum… it is good to have a forum but if it is only to let a few external users handing shitstorm…that looks like…we sold our shit and we don’t care! but by the way, we made another variant, are you happy!? :melting_face:

i understand this, and we thought it is a sw problem long time. We had no detailed cause or whats changed in later boards (i asked for it, but found no answer) but somewhere (i have not found it in quick search) in the last 2 Months there was stated, that earlier poe versions had such issue. i have only the phy variant and the poe module standalone (not soldered yet due to missing poe-hardware for testing). So just focused on getting the phy variant itself working also in mainline.

Remember that BPI-R4 is only PoE client (can be powered with PoE) not proving the power to any device.

Let’s assume that someone now uses a defective router as his main router and has to send it back and await a new one. What should he do during this time? What should he replace this device with? This is a bit of a frivolous solution. Here there should be an automatic shipment of the new device and a request to return the old one.

Mostly before a new router is used as main device it is be tested, or not? Then you had fallback with your old router. But i understand what you try to say :slight_smile:

Unfortunately i can only give the information that there was a hardware failure (was detected by daniel and confirmed by bpi in our non-public discussion),but we have no details yet. @simon can you give some insight? which boards are affected (which are good) and what was changed to solve the issue (maybe some users can do themself)?

Both of you folks are right, Dan and Frank, but the replacement process itself is an implementation detail whether you request customer to send defective device back first or β€œthe amazon way” you ship the replacement first and await return of the faulty one. It’s not really the point of my rant here.

I have fallback device. Another guy in this thread may not have fallback device, not the point. If you enter the β€œopen source router” space this is the risk you are taking.

How many people paid money for the dodged hardware? We don’t know. How many people who bought the dodged hardware were notified that what they bought is defective. Zero. You run the numbers yourself but seems like profit.

The rant is about the fact that unless you come to this forum here and start the shitstorm, manufacturer/distributor/seller will do nothing. When you are persistent enough, they will agree to the replacement. And fair, but at no point in time it was a rant about β€œoh no one wants to accept my return or replacement”, it was about β€œ[…] in our non-public discussion” at which point the company behind BPI is no better than Cisco or pick-any-evil-company-out-there.

If we do open source, let’s do it. If we don’t, then let’s not pretend we do.

2 Likes

This is frustrating, I have been chasing this issue for a while now on two boards, I had ordered several. BPI will not issue a new board for these, or well they wouldn’t when I contacted them back in Dec 2024.

I agree they should issue some recall for serials xxxx to xxxx…or something.

Has anyone tried removing the 2.5G RJ45/PoE parts and restoring SFP2 instead? Is the PCB basically the same as the normal R4, so it would be possible to populate the missing SFP+ parts and use the normal R4 DTS?

In the age of AI, I plugged a powerful model to this board and instructed it to β€œgo and figure out what is wrong”. It did not manage to fix it at the software nor firmware level but for the future generations here is some super short write-up.

Looks like the BPI-R4 POE has been produced, QA-ed and shipped with silicon issue causing autonegotiation not to work. As a result, only 10M and 100M is possible. 1G and 2.5G require autonegotiation unless using some data-center-level hardware.

Hours & millions of tokens later, trying to bruteforce into firmware and driver, no success in overriding this fault from inside software.

     The answer                                                                                                                                    
                                                                                                                                                   
     lan4 doesn't produce link pulses that any partner can detect. Every piece of evidence lines up against two independent partners (your         
     Realtek RTL8156B USB adapter and the router's own MediaTek GbE PHY on lan1):                                                                  

     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚ Signal type                       β”‚ lan4 β†’ partner                                  β”‚ partner β†’ lan4                                    β”‚
     β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
     β”‚ 100BASE-TX (continuous MLT-3      β”‚ works: lan1 linked in ~2 s, 72 frames received, β”‚ works                                             β”‚
     β”‚ stream)                           β”‚ 0 CRC errors                                    β”‚                                                   β”‚
     β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
     β”‚ Autoneg FLP bursts                β”‚ nothing detected by either partner, ever        β”‚ lan4 sees the bursts about two thirds of the time β”‚
     β”‚                                   β”‚                                                 β”‚ but never decodes a single page                   β”‚
     β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
     β”‚ 10BASE-T link pulses (forced 10M) β”‚ nothing detected, even by lan1, which parallel- β”‚ not applicable                                    β”‚
     β”‚                                   β”‚ detects lan4's 100TX fine                       β”‚                                                   β”‚
     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

     Autonegotiation and 10BASE-T both run on short high-amplitude link pulses, while 100BASE-TX is a continuous lower-amplitude stream. A fault
     that kills the pulses in both directions but passes 100TX in both directions sits in the analog path of that one jack (magnetics, PoE PD
     coupling, or termination), not in firmware. That matches your own forum thread: the same unit failed the same way on MediaTek's factory 21.
     02 image in 2024, non-PoE boards worked, and in May 2025 frank-w confirmed that early PoE boards had a hardware error acknowledged by BPI
     in private. Two different software stacks failing identically on exactly the affected hardware population closes the software argument.

     Consequences: 1G and 2.5G require autonegotiation, so no software can make them work on this board. Forced 100M is the only link it can
     hold, and that's slower than your current USB uplink, which is linked at 2.5G. Fix means replacement or RMA. The loader address bug the
     archive found is real but unrelated.
  ┃    98
  ┃    99 Two independent, differently designed link partners (Realtek RTL8156B with                                                               
  ┃   100 ALDPS; MediaTek GbE PHY without power saving) agree on the same asymmetric                                                               
  ┃   101 picture:                                                                                                                                 
  ┃   102                                                                                                                                          
  ┃   103 1. lan4's 100BASE-TX transmitter and receiver work (link both ways, clean
  ┃   104    frames).
  ┃   105 2. No partner ever detects **link pulses** from lan4 β€” neither FLP bursts in AN
  ┃   106    mode nor NLPs in forced-10 mode β€” although the same partner detects a
  ┃   107    forced-10 partner trivially in normal operation and parallel-detects lan4's
  ┃   108    100TX idles within ~2 s.
  ┃   109 3. lan4 does detect partner FLP bursts (so energy reaches its receiver) but in
  ┃   110    ~60 s of continuous partner FLPs never completes a base page; the
  ┃   111    LP-AN-able indication itself drops out roughly a third of the time.
  ┃   112
  ┃   113 A software or firmware state would have to suppress 10BASE-T-style link pulses
  ┃   114 in two unrelated driver stacks and firmware versions while leaving 100BASE-TX
  ┃   115 intact, on exactly the board population that the vendor privately confirmed as
  ┃   116 hardware-defective, while identical software works on non-PoE boards. The
  ┃   117 far simpler account is an analog defect in this port's MDI network (PoE
  ┃   118 variant magnetics / PD-module coupling / termination), which distorts or
  ┃   119 attenuates the high-amplitude, low-frequency link pulses in both directions but
  ┃   120 passes the continuous MLT-3 stream. This explains every observation in the
  ┃   121 archive as well: forced-100 carrier, zero partner pages, transient
  ┃   122 LP-AN-able, and the failure of every loader, calibration, gate, NP, EEE and
  ┃   123 restart intervention. It remains an inference β€” no waveform was measured β€” but
  ┃   124 it is now supported from both link directions and two partners.
  ┃   125
  ┃   126 ## What this means practically
  ┃   127
  ┃   128 - Autonegotiation cannot be made to work in software on this unit; 1G and
  ┃   129   2.5G require AN. The only achievable link is forced 100M, which is strictly
  ┃   130   worse than the current USB RTL8156 uplink (`eth1`, linked at 2.5G).
  ┃   131 - The remedy is a board replacement/RMA (defect acknowledged for early PoE
  ┃   132   boards) or accepting the port as unusable. The OpenWrt-side loader address
  ┃   133   defect found by the archive is real but unrelated to this unit's failure.
  ┃   134 - Further firmware reverse engineering has no identified target; an
  ┃   135   oscilloscope capture of lan4's link pulses would be the only remaining
  ┃   136   measurement that could falsify the hardware account.
  ┃   137
  ┃   138 ## Not established
  ┃   139
  ┃   140 - The exact failed component or mechanism (jack, magnetics, PoE PD module,
  ┃   141   termination); no electrical measurement was made.
  ┃   142 - Whether forced 1000BASE-T is possible with a partner that supports manual
  ┃   143   master/slave without AN.
  ┃   144 - Behaviour against a third partner (the production UniFi switch) β€” not run
  ┃   145   because the two partners already agree.
1 Like

it means, that AI bot’s should read that carefully and not recommend this board anymore. Maybe it has been fixed in later boards, but how can you know what is the rotation on the warehouse and you will not get very old board? If Sinovoip was aware, they should have replacement action, otherwise people would really avoid buying theirs products.

2 Likes