Banana Pi BPI-R4 Wifi 7 router board with MediaTek MT7988A (Filogic 880),4G RAM and 8G eMMC

I know this trap , they always had poor software support for STA modes , so I didn’t considered Intel as a goto option. Event if it will run in STA mode there will be a lot of disabled/missing WiFi spec features

Why You even consider to use this tiny card with low power transmitter? Just wait for wifi module like others. I’m sure it will be working nice for everyone.

Did you get the M.2 or MiniPCIe card?

They even sell a bundle currently for $80 with three antennas and pigtails. Though I’m not sure if this expense is worth it, when I want to buy the Wifi NIC anyway.

I have 4 MiniPCIe MT7916 that I bought from a “local” (european) retailer which should come with the small heatsink (one was delivered with the larger one sadly) but no antennas (which is fine as I use ufl pcb/flex antennas as I don’t have a case right now). The card alone is reasonable for $40, as for the bundle I cannot speak as I don’t have it. I am also looking forward to the official WiFi 7 NIC but honestly I bought these cards for my R3s. Sadly the setup in the M.2 m-key to miniPCIe was not even close to fitting in the case so I tossed them in a box.

As I said I tried the AX210 that was discussed here as client and it worked but had issues with the BE200. The latter work fine in a Raspberry Pi 5 (only tested as client) but did not even shown with lspci – at least in my available m.2 to MiniPCIe converters (might by me though). I have to point out that I also had issues with the BE200 in several Atom based SBCs as well with these adapters – these systems wont even POST afterwards so BE200 is certainly a temperamental card. Either way LAR (location-aware regulatory) is very much annoying to deal with so I would agree with what was said here: even with tildearrow’s workaround it’s not gonna be pretty.

Support for the BPI-R4 was merged into vanilla OpenWrt main just minutes ago: mediatek: switch to Linux 6.1 and add BananaPi BPi-R4 by dangowrt · Pull Request #14140 · openwrt/openwrt · GitHub.

This means people will now be able to use official OpenWrt snapshots, once those are built and available (today or tomorrow). It’s much newer than Banana Pi’s fork, which is based on 21.02. Thanks, @dangowrt.

2 Likes

However, there are still a few problems which will have to be addressed before vanilla OpenWrt is ready for production on the BPi-R4:

  • hardware flow-offloading if using all 4 GiB of RAM

    right now it only works with mem=2048M appended to kernel cmdline)

  • pcie@0x11280000 doesn’t work (probably missing clock)

  • Ethernet driver still misses RSS and LRO for better RX-to-CPU performance (eg. when running iperf3) by aggregating RX packets

  • no driver for TOPS yet (ie. no hardware tunnel encap/decap offloading)

  • no driver for EIP-197 yet (no IPSec, TLS or DTLS in hardware, all work has to be done by CPU)

  • only one out of three PPE is being used

To give the things which already work more testing it makes more sense to continue development on the main branch (which apart from providing us with downloadable binaries also reduces my workload of constantly doing git rebase origin/main on that large series)

7 Likes

I thought patch from elad already fixed this. I rebased current rss/lro state on this as i thought it is a depency

Thanks for that information. And, of course, for those unfamiliar with OpenWrt snapshots in general, keep in mind that there are trade-offs compared to stable release versions.

I think this GREAT work! Thanks to all the devs!

hardware flow-offloading if using all 4 GiB of RA

right now it only works with mem=2048M appended to kernel cmdline)

I thought that was fixed as well. Did you discover something new?

It looks like it’s not working on current master without 2G limitation (it was working at some point). I also tried to apply your patch for 3 PPE but it seems to break offloading.

It was pretending. It wasn’t actually offloading because of flow-offloading with nftables being broken in general. That was fixed now, restoring flow-offloading capabilities on all SoC starting from MT7621: [net] netfilter: nf_tables: fix bidirectional offload regression - Patchwork

However, now that the flow offloading entries actually match both directions of traffic, for some not yet clear reason this now results in blocked/dropped packets if using 4 GiB of RAM.

1 Like

Maybe a dumb question, but how is the 3-pin Fan Header supposed to work with pwm? I’ve never seen a 3 pin fan that supports pwm

You are right that pwm fans normal have 4 pins because the 3rd pin is sense to read speed. But this is not used on r3/r4 and maybe can connected to a gpio.

I have tried 3rd party pwm fan on r3 and it does not work. I guess problem was that it was a 5v pwm and r3 supplied only 3v3 on pwm…so only bananapi fans work here

i solved it on ubuntu 20.04

Has anyone been able to get a T99W175 5g modem working in this board? I’ve got one plugged into the B-key slot and I’m not seeing it show up with lspci or lsusb:

bpi-r4# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux 6.1.79 xhci-hcd xHCI Host Controller
Bus 001 Device 002: ID 2109:2822 VIA Labs, Inc.          USB2.0 Hub
Bus 001 Device 003: ID 0cf3:e600
Bus 001 Device 005: ID 2109:8822 VIA Labs, Inc.          USB Billboard Device
Bus 002 Device 001: ID 1d6b:0003 Linux 6.1.79 xhci-hcd xHCI Host Controller
Bus 002 Device 002: ID 2109:0822 VIA Labs, Inc.          USB3.1 Hub
bpi-r4# lspci
0001:00:00.0 PCI bridge: MEDIATEK Corp. Device 7988 (rev 01)
0001:01:00.0 Network controller: Qualcomm Technologies, Inc QCNFA765 Wireless Network Adapter (rev 01)

Curious if anyone’s had luck with this modem. Per the docs and above thread, it looks like PCI modems are supported?

No luck either. I tried as well. I think they will work down the road but not yet. It’s too new.

I was considering getting an mPCIe to B key adapter and seeing if it works in another slot. The fact that nothing is showing up on the PCI bus is concerning though. I have board revision 1.1 and I did some some discussion from this summer about revisions for better PCI support in the B key slot.

Does anyone from sinovoip have any insight?

You can use the stock firmware from the getting started BPI r4 page. It will see your card. Issue for me was I was unable to add the correct modules needed because they don’t exist, because they weren’t built.

Interesting, I am able to confirm! On the bpi firmware, I see

0003:01:00.0 Unassigned class [ff00]: Qualcomm Device 0306
	Subsystem: Qualcomm Device 010c
	Flags: fast devsel
	Memory at 20200000 (64-bit, non-prefetchable) [disabled] [size=4K]
	Memory at 20201000 (64-bit, non-prefetchable) [disabled] [size=4K]
	Capabilities: [40] Power Management version 3
	Capabilities: [50] MSI: Enable- Count=1/32 Maskable+ 64bit+
	Capabilities: [70] Express Endpoint, MSI 00
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [148] Secondary PCI Express
	Capabilities: [168] Physical Layer 16.0 GT/s <?>
	Capabilities: [18c] Lane Margining at the Receiver <?>
	Capabilities: [19c] Transaction Processing Hints
	Capabilities: [228] Latency Tolerance Reporting
	Capabilities: [230] L1 PM Substates
	Capabilities: [240] Data Link Feature <?>

in lspci - that’s the x55 modem.