Banana Pi BPI-R3 Mini Router board with MediaTek MT7986(Filogic 830),support Wi-Fi 6,2.5GbE

This is the routing i mean…if r3 mini has usb3 routed to mpcie/m.2 slot it may be better. R3 has only usb2 on the mpcie slot,m.2 has pcie only.

But this is no different pcie version/speed,only what busses are connected to the connectors…

Btw. I have changed my uboot repo so that it creates emmc image template (bootchain till uboot,no rootfs or linux) for r3 and r4

Maybe anyone can try the bpi-r3_emmc.img.gz on r3 mini. I guess uboot will need additional changes for r3 mini for peripherals,but basic bootup should work.

Edit: noticed that this release uses wrong end-offset of gpt partition,not bad because this partition is only used to prevent overwrite and have same partition count as sdcard,but fixed anyway now


i prepared with @ericwoud a basic r3mini linux…maybe anyone with the board can test it?

make sure booting the “conf-emmc-mini” config from fit

edit: added version var to my uboot which can be set in uenv.txt to load the right conf

I would be happy to test it but need some more detailed instructions on how to proceed.


Boot r3mini from nand and unpack + flash bpi-r3_emmc.img.gz to emmc user partition and flash bpi-r3_emmc_bl2.img to boot0 partition…then try to boot from emmc. Maybe you need to set partitionconfig to mark emmc as bootable

For bl2 and partconf you can look into my writeemmc function

Fip is already part of image and can be skipped when flashing image file (unpack first and put to usb and load from it)

If this works you can try to boot kernel itb you can compile from my kernel repo.

setenv bootconf "conf-emmc-mini"
fatload usb 0:1 $loadaddr bpi-r3.itb
bootm $loadaddr#$bootconf

Bootconf selects this from the fit image.

Maybe load initrd…you can also use some of commands i put in uboot environment,but they are not yet changed for r3mini. You can also add an initrd to the fit config (see disabled line).

Edit: i see i have still an error in emmc image creation as there bl2 should not be written to first partition…this breaks gpt…i fix this the start pipeline again

Done,pls use binaries here: Release Build for branch 2023-10-bpi (2023.10) · frank-w/u-boot · GitHub

Special promotion for Banana Pi forum subscribers! $10 discount per order, limited to 50 orders

Hi. I bought banana pi r3mini. in stock there was 20230719 firmware, all woks, but no kmod packages on openwrt site for downloading. After i have installed new firmware 2023-09-12 from wiki page, and now wifi don`t work and also no kmod packages for downloading. Where can i find original firmware and kmod-packages?

i only know this openwrt source for r3mini:

you could self compile with all you need, official openwrt has no support for r3mini, i’m working with @ericwoud in supporting r3mini in mainline

SinoVoip never provided a sample to us OpenWrt developers and it is the first board on public sale with this Airoha 2.5G Ethernet PHY, so we do need a sample for testing before being able to offer official images. If you want official OpenWrt (ie. with working kmods from package feeds), please urge SinoVoip to provide a sample to OpenWrt devs – I will happily spend one afternoon creating the OpenWrt image and testing, but I won’t spend money for the hardware.

I can test any image(by official way to burn image to emmc) if u can compile it

Sorry, but it’s too annoying without the hardware in front of me (and hence being able to power-cycle and change what’s connected to the Ethernet plugs when ever I like). Esp. also replacing the bootloader (which will also require the PHY driver for Ethernet to work within the bootloader, e.g. for TFTP) is not something I can do remotely.

if you need sample ,please send mail to [email protected] , we can full support it.

Is it possible to get the new quactel RM521f-GL running on this? or is 520n the only one supported?

Definitely interested in this answer, as I am awaiting on the availability of the Quectel 5G RM521F-GL modem. Missed out on the first batch of availability…

Any news about mainline openwrt support?

Tested it

So first of all for some reasons USB was not working. So turned it manually with usb start

Finally got this

BPI-R3> setenv bootconf "conf-emmc-mini"
BPI-R3> fatload usb 0:1  bpi-r3.itb
8551672 bytes read in 204 ms (40 MiB/s)
BPI-R3> bootm $loadaddr#$bootconf
## Loading kernel from FIT Image at 46000000 ...
Could not find configuration node
ERROR: can't get kernel image!

Damn … it was wrong itb (from 6.1 main) what had no such config node

Well seems finally need to build it :frowning:

Yes uboot requires usb core to be started manually. I have the script useusb which does this and sets some variables like device and partition used by newboot,but latter is not adjusted for r3mini

For booting r3mini kernel you have to use (compile yourself) 6.6-r3mini branch as i have not yet merged the changes (as i do not have the board yet for testing) to main.

Just built a 6.6-r3mini kernel, but not yet tested it and have a questions

Here I see a reference to used kernel-1, which used ./arch/arm64/boot/Image.gz

But in recently built kernel I see no such file. The only kernel image built is

ls -la BPI-BOOT
drwxr-xr-x 2 root root      512 дек 30 12:47 .
drwxr-xr-x 4 root root     2560 янв  1  1970 ..
-rwxr-xr-x 1 root root    23001 дек 30 12:47 bpi-r3.dtb
-rwxr-xr-x 1 root root  8937500 дек 30 12:47 bpi-r3.itb
-rwxr-xr-x 1 root root 24554048 дек 30 12:47 uImage_nodt

Is this ok?

The Image.gz is build into the itb and is extracted by uboot

Well - kernel is loading, but finally need initrd

[    6.652802] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance.
[    6.666945] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 6.6.0-bpi-r314bea7d278205bc8f10cc4132b595a24ca203745 #1
[    6.676838] Hardware name: Bananapi BPI-R3 Mini (DT)
[    6.681787] Call trace:
[    6.684222]  dump_backtrace+0x98/0x118
[    6.687965]  show_stack+0x18/0x24
[    6.691268]  dump_stack_lvl+0x48/0x60
[    6.694921]  dump_stack+0x18/0x24
[    6.698224]  panic+0x2fc/0x35c
[    6.701270]  kernel_init+0x198/0x1d8
[    6.704836]  ret_from_fork+0x10/0x20
[    6.708401] SMP: stopping secondary CPUs
[    6.712313] Kernel Offset: disabled
[    6.715787] CPU features: 0x0,00000008,00020000,1000420b
[    6.721084] Memory Limit: none
[    6.724127] Rebooting in 1 seconds..

If I get it right I should build image from here GitHub - frank-w/BPI-Router-Images and put it to partition 6. Should I specify somewhere initrd param?

Also got this pretty weird thing

[    6.276505] Waiting for root device /dev/mmcblk0p6...
[    6.399423] mtk-msdc 11230000.mmc: Final PAD_DS_TUNE: 0x14414
[    6.406375] mmc0: new HS400 MMC card at address 0001
[    6.412203] mmcblk0: mmc0:0001 008GB0 7.28 GiB
[    6.420511] GPT:Primary header thinks Alt. header is not at the end of the disk.
[    6.427908] GPT:14335999 != 15269887
[    6.431478] GPT:Alternate GPT header not at the end of the disk.
[    6.437466] GPT:14335999 != 15269887
[    6.441031] GPT: Use GNU Parted to correct GPT errors.
[    6.446258]  mmcblk0: p1 p2 p3 p4 p5 p6
[    6.451412] mmcblk0boot0: mmc0:0001 008GB0 4.00 MiB
[    6.458378] mmcblk0boot1: mmc0:0001 008GB0 4.00 MiB
[    6.464787] mmcblk0rpmb: mmc0:0001 008GB0 4.00 MiB, chardev (245:0)
[    6.503537] EXT4-fs (mmcblk0p6): mounted filesystem af652cd0-62d5-45a5-8b7a-4b0401555a97 ro with ordered data mode. Quota mode: disabled.
[    6.515950] VFS: Mounted root (ext4 filesystem) readonly on device 179:6.
[    6.523631] devtmpfs: error mounting -2
[    6.528983] Freeing unused kernel memory: 4480K
[    6.570249] Run /sbin/init as init process

Is this possible to fix somehow GPT table? Sorry if bother you too much.