Banana Pi R3 mini........I'm lost

so your nand is still broken? then i would avoid changing anything on emmc…if you break this, you cannot boot without tricks (ramboot)

btw. built my initrd with ubi-support

https://drive.google.com/drive/folders/1_UtkNl0S44_Xy46NAEn1KoFDSOkQwAsb?usp=drive_link

rootfs_bpi-r4_lvm+ubi.cpio.zst

and you cannot write directly over ssh to a device…you have to copy the file to remote first and then flash

Yes, NAND is still broken but I was able to succesfully load Rooter firmware back in to eMMC. The R3 mini is functional using eMMC.

I’ll try to fix NAND again this morning using your updated files. Thank you for the help and patience!

Eric

Frustrating…

I started minicom; connected UART; powered on R3 mini; stopped at the UBOOT menu; selected EXIT to get to the MT7986> propmpt.

Entered the following commands successfully:

fatload usb 0:1 $loadaddr bpi-r3-6.6.68-main.itb
setenv rdaddr 0x48000000
setenv bootargs "debug=7 root=root /dev/ram0 rw initrd=${rdaddr},20M"
fatload usb 0:1 ${rdaddr} rootfs_bpi-r4_lvm+ubi.cpio.zst
bootm ${loadaddr}#conf-emmc-mini

Entered 'root" at the Buildroot prompt

mounted the USB drive successfully

# insmod mtd-rw.ko i_want_a_brick=1
insmod: can't insert 'mtd-rw.ko': No such file or directory
# mtd write /mnt/openwrt-mediatek-filogic-bananapi_bpi-r3-mini-snand-preloa
der.bin /dev/mtd0
-sh: mtd: not found
# cp /mnt/openwrt-mediatek-filogic-bananapi_bpi-r3-mini-snand-preloader.bin /dev
/mtd0
# ubidetach -m 1
ubidetach: error!: cannot detach mtd1
           error 19 (No such device)

Maybe I’ll just have to settle for having an R3 mini with a broken NAND.

Eric

The initrd is only userspace…maybe kernel needs ubi too (but i thought i have),but not as module…it needs to be builtin to work also with initrd

If I stop at the UBOOT menu under minicom, I can get to three different areas:

  1. I can boot to PRODUCTION. This brings up the Rooter firmware. At the command prompt I can see the mtdx and ubix directories. The USB drive mounts correctly. BUT the Rooter firmware does not have mtd installed.

  2. I can boot to RECOVERY. This brings up the OpenWrt that was installed when I updated the eMMC. The USB drive does not mount; no sdax entries under /dev. I can see the mtdx and ubix directories. No connectivity through the ethernet cable to a browser at 192.168.1.1

  3. I can hit EXIT and come to the MT7986> prompt. I can mount the USB. mtd command does not work. I do not see mtd1 directory?

I think I’ll just leave the R3 mini as is.

Eric

Frank-W, thank you again for your help and patience.

More testing…I can now boot in to NAND and see the UBOOT menu. The R3 mini boots to OpenWrt (under NAND) with the UART adapter connected through minicom.

What I did:

I created a custom version of the Rooter firmware and included the kmod-mtd-rw package in the kernel. I then installed the custom version to eMMC and was able to execute the NAND restore commands at the Rooter prompt under minicom:

insmod mtd-rw.ko i_want_a_brick=1

mtd write /mnt/sda1/openwrt-mediatek-filogic-bananapi_bpi-r3-mini-snand-preloader.bin /dev/mtd0
ubidetach -m 1
ubiformat /dev/mtd1
ubiattach -m 1
volsize=$(wc -c < /mnt/sda1/openwrt-mediatek-filogic-bananapi_bpi-r3-mini-snand-bl31-uboot.fip)
ubimkvol /dev/ubi0 -N fip -n 0 -s $volsize -t static
ubiupdatevol /dev/ubi0_0 /mnt/sda1/openwrt-mediatek-filogic-bananapi_bpi-r3-mini-snand-bl31-uboot.fip
cd /lib/firmware/airoha
cat EthMD32.dm.bin EthMD32.DSP.bin > /tmp/en8811h-fw.bin
ubimkvol /dev/ubi0 -N en8811h-fw -n 1 -s 147456 -t static
ubiupdatevol /dev/ubi0_1 /tmp/en8811h-fw.bin
ubimkvol /dev/ubi0 -n 2 -N ubootenv -s 126976
ubimkvol /dev/ubi0 -n 3 -N ubootenv2 -s 126976
volsize=$(wc -c < /mnt/sda1/openwrt-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb)
ubimkvol /dev/ubi0 -n 4 -N recovery -s $volsize
ubiupdatevol /dev/ubi0_4 /mnt/sda1/openwrt-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb
volsize=$(wc -c < /mnt/sda1/openwrt-mediatek-filogic-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb)
ubimkvol /dev/ubi0 -n 5 -N fit -s $volsize
ubiupdatevol /dev/ubi0_5 /mnt/sda1/openwrt-mediatek-filogic-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
ubimkvol /dev/ubi0 -n 6 -N rootfs_data -m

The commands executed successfully with the exception of the following command:

root@ROOter:/lib/firmware/airoha# ubimkvol /dev/ubi0 -n 5 -N fit -s $volsize
[  966.017853] block ubiblock0_5: created from ubi0:5(fit)
Volume ID 5, size 93 LEBs (11808768 bytes, 11.2 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "fit", alignment 1
root@ROOter:/lib/firmware/airoha# [  966.173274] mtdblock_open: 6 callbacks suppressed
[  966.173283] mtdblock: MTD device 'bl2' is NAND, please consider using UBI block devices instead.
[  966.186784] mtdblock: MTD device 'bl2' is NAND, please consider using UBI block devices instead.
[  966.201732] mtdblock: MTD device 'ubi' is NAND, please consider using UBI block devices instead.
[  966.210645] mtdblock: MTD device 'ubi' is NAND, please consider using UBI block devices instead.
[  966.237249] mtdblock: MTD device 'bl2' is NAND, please consider using UBI block devices instead.
[  966.246101] mtdblock: MTD device 'bl2' is NAND, please consider using UBI block devices instead.
[  966.260950] mtdblock: MTD device 'ubi' is NAND, please consider using UBI block devices instead.
[  966.269808] mtdblock: MTD device 'ubi' is NAND, please consider using UBI block devices instead.
[  966.336641] /dev/ubiblock0_5: Can't open blockdev
[  966.342031] /dev/ubiblock0_5: Can't open blockdev
[  966.347211] /dev/ubiblock0_5: Can't open blockdev
[  966.352450] /dev/ubiblock0_5: Can't open blockdev
[  966.357855] F2FS-fs (ubiblock0_5): Magic Mismatch, valid(0xf2f52010) - read(0xffffffff)
[  966.365924] F2FS-fs (ubiblock0_5): Can't find valid F2FS filesystem in 1th superblock
[  966.373772] F2FS-fs (ubiblock0_5): Magic Mismatch, valid(0xf2f52010) - read(0xffffffff)
[  966.381756] F2FS-fs (ubiblock0_5): Can't find valid F2FS filesystem in 2th superblock
[  966.389968] /dev/ubiblock0_5: Can't open blockdev
[  966.394944] exFAT-fs (ubiblock0_5): invalid boot record signature
[  966.401040] exFAT-fs (ubiblock0_5): failed to read boot sector
[  966.406852] exFAT-fs (ubiblock0_5): failed to recognize exfat type
[  966.414120] /dev/ubiblock0_5: Can't open blockdev

I ignored the message and continued entering the NAND restore commands. I then powered the R3 mini off, switched to NAND and powered it back on. The R3 mini booted and the UBOOT menu came up under NAND.

I do not see any wireless networks for OpenWrt on my laptop.

I cannot connect to the R3 mini with an ethernet cable through a browser using 192.168.1.1. Under minicom i see the following:

root@OpenWrt:~# ifconfig
br-lan    Link encap:Ethernet  HWaddr EA:27:73:B8:F9:F0  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fde9:307e:72db::1/60 Scope:Global
          inet6 addr: fe80::e827:73ff:feb8:f9f0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1691 errors:0 dropped:0 overruns:0 frame:0
          TX packets:159 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:107743 (105.2 KiB)  TX bytes:15974 (15.5 KiB)

eth0      Link encap:Ethernet  HWaddr EA:27:73:B8:F9:F0  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1697 errors:0 dropped:0 overruns:0 frame:0
          TX packets:166 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:132680 (129.5 KiB)  TX bytes:17606 (17.1 KiB)
          Interrupt:121 

eth1      Link encap:Ethernet  HWaddr EA:27:73:B8:F9:F1  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:121 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:321 errors:0 dropped:0 overruns:0 frame:0
          TX packets:321 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:25036 (24.4 KiB)  TX bytes:25036 (24.4 KiB)

I guess I’m further along. I might do some additional testing later today.

Rooter firmware comes up on eMMC and I am able to connect to the cellular network.

Eric

I guess nand version from openwrt does not support wifi as this needs firmware and driver as module.

Imho it is more designed as recovery system to have a basic linux system for flashing emmc as productive system.

I just don’t know enough about the OpenWrt files that get loaded and what function they perform?

After I corrupted my Rooter firmware (by trying to upgrade through the luci interface), I downloaded these files from OpenWrt Firmware Selector website on December 31, 2024 to try to fix things:

openwrt-mediatek-filogic-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
openwrt-mediatek-filogic-bananapi_bpi-r3-mini-snand-factory.bin
openwrt-mediatek-filogic-bananapi_bpi-r3-mini-snand-preloader.bin
openwrt-mediatek-filogic-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip
openwrt-mediatek-filogic-bananapi_bpi-r3-mini-snand-bl31-uboot.fip
openwrt-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb
openwrt-mediatek-filogic-bananapi_bpi-r3-mini-emmc-preloader.bin
openwrt-mediatek-filogic-bananapi_bpi-r3-mini-emmc-gpt.bin

I used these OpenWrt files in my various recovery attempts. I noticed the first time that I installed OpenWrt to eMMC using the MT7986> directory, I had the same problems: could not connect through ethernet cable to 192.168.1.1 and no wireless.

I re-installed to eMMC using the OpenWrt files but used the Banana-Pi-R3-Mini-MWAN3-GO2025-01-01-upgrade.itb from Rooter instead of the openwrt-mediatek-filogic-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb from OpenWrt. After that I was able to connect to the R3 mini through the Rooter firmware (wireless and ethernet).

Are the ethernet drivers (airoha-en8811h-firmware) part of the OpenWrt package? If they aren’t, that could be why I could not connect via ethernet cable/192.168.1.1

Eric

my last state was that the airoha firmware needs to be flashed to boot1 of emmc, but afaik this is only for uboot, the linux system normally has the firmwares in /lib/firmware, but maybe driver was modified to load the firmware from boot0 block too because firmware was not officially released when openwrt got r3mini support.

normally it should be the sysupgrade file, but i’m no expert here…you could also try to start initramfs-recovery manually from uboot this should be linux kernel+ initrd

please do not touch emmc while nand is broken…thats why i recommend you loading external linux+initrd, that leaves storage untouched.

i guess rooter does not use the boot1 block for ethernet-firmware in uboot…

this is openwrt-support for r3 mini…there is indeed no install option on emmc for nand

https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch

but basicly it should be same for r3

https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch#l634

looks like the nand only copies sections from sdmmc, except the bl2, but this has to be done separately (snand_write_bl2)

Tengo un BPI‑R3 Mini (MT7986) y estoy teniendo problemas serios para restaurarlo y actualizarlo correctamente. Quiero explicar la situación completa para que puedan orientarme de la mejor manera:

  1. Problema anterior: En intentos anteriores de actualizar el firmware, cada vez que cargábamos una versión nueva, el dispositivo dejaba de responder, no arranca correctamente y no carga el menú de inicio. Esto nos impedía acceder a la última versión instalada y dejaba la placa en un estado “semi-muerta”.
  2. Problema actual: Recientemente, instalé el archivo openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb siguiendo las indicaciones que me dieron. Después de eso, el dispositivo no arranca en absoluto y tampoco carga el menú de inicio. Cada vez que intentamos cargar una versión actualizada, el mismo problema ocurre: el R3 Mini queda inoperativo y no responde de ninguna manera.

Hasta ahora he seguido todos los pasos indicados en el foro, intentando restaurar la placa y usar los archivos que se supone deberían revivirla, pero el dispositivo sigue sin responder y no arranca la última versión.

Lo que necesitamos es una guía clara para revivir el R3 Mini, tomando en cuenta ambos problemas: el estado previo de falla y el fallo después de instalar initramfs-recovery.itb.

Agradezco de antemano cualquier orientación o paso detallado que puedan darme para restaurar el dispositivo y dejarlo operativo nuevamente.

I have a BPI‑R3 Mini (MT7986) and I am experiencing serious problems restoring and updating it correctly. I want to explain the full situation so that you can provide the best guidance:

Previous problem: In previous attempts to update the firmware, every time we loaded a new version, the device would stop responding, fail to boot properly, and the start menu would not load. This prevented us from accessing the latest installed version and left the board in a “semi-dead” state.

Current problem: Recently, I installed the file openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb following the instructions I was given. After that, the device does not boot at all and the start menu still does not load. Every time we try to load an updated version, the same problem occurs: the R3 Mini becomes completely unresponsive and inoperative.

So far, I have followed all the steps indicated in the forum, trying to restore the board and use the files that are supposed to revive it, but the device still does not respond and does not boot the latest version.

What we need is a clear guide to revive the R3 Mini, taking into account both problems: the previous failure state and the failure after installing initramfs-recovery.itb.

I appreciate in advance any guidance or detailed steps you can provide to restore the device and make it operational again.

*** U-Boot Boot Menu ***

 1. Startup system (Default)
 2. Upgrade firmware
 3. Upgrade ATF BL2
 4. Upgrade ATF FIP
 5. Upgrade single image
 6. Load image
 0. U-Boot console

Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit

*** Upgrading Single image ***

Available load methods: 0 - TFTP client (Default) 1 - Xmodem 2 - Ymodem 3 - Kermit 4 - S-Record

Select (enter for default): 2

*** Starting Ymodem transmitting ***

CCCCCCCCCC *** Loaded 9371648 (0x8f0000) bytes at 0x46000000 ***

Erasing from 0x0 to 0x8fffff, size 0x900000 … OK Writing from 0x46000000 to 0x0, size 0x8f0000 … OK Verifying from 0x0 to 0x8effff, size 0x8f0000 … OK

*** Single image upgrade completed! *** MT7986> reset resetting …

Do not try upgrade from vendor openwrt to upstream one. Your bootmenu looks not like mainline openwrt.you have to install all parts like described in the official openwrt guide.

https://openwrt.org/toh/sinovoip/bananapi_bpi_r3_mini#installation

The problem is with the BL2 and BPI-FIP boot files it loads. I’m doing it from the command line, but I’m a complete novice and it’s giving me trouble. I also have two R3 Minis with the same problem.

mtk_uartboot.exe -s COM4 --payload openwrt-24.10.0-mediatek-filogic-bananapi_bpi-r3-mini-snand-factory.bin

mtk_uartboot.exe -s COM4 -p mt7986-ram-ddr4-bl2.bin -a -f openwrt-24.10.0-mediatek-filogic-bananapi_bpi-r3-mini-snand-bl31-uboot.fip

Please help me

image

I cannot read anything on the screenshot (cannot resize it and zoom does also not make it readable from my phone).

I have not yet installed openwrt on my r3mini,but you should follow steps on the openwrt page,not bpi instructions or any bootmenu entry. Maybe boot the initramfs manually to do the steps from linux instead of uboot.

usb start
load usb 0:1 $loadaddr <filename>
bootm $loadaddr#<bootconf>

Replace filename and bootconf (including the brackets) with the right valuas. Not know the right bootconf exactly for r3mini,but you can use iminfo command to see possible configs.

ARP Retry count exceeded; starting again

Wrong Image Type for bootm command

ERROR -91: can’t get kernel image!

Volume en8811h-fw not found!

[Airoha] read firmware from UBI failed.

EN8811H load firmware fail.

Using ethernet@15100000 device

TFTP from server 192.168.1.254; our IP address is 192.168.1.1

Filename ‘openwrt-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb’.

Load address: 0x46000000

Loading: *

ARP Retry count exceeded; starting again

Wrong Image Type for bootm command

ERROR -91: can’t get kernel image!

Volume en8811h-fw not found!

[Airoha] read firmware from UBI failed.

EN8811H load firmware fail.

Using ethernet@15100000 device

TFTP from server 192.168.1.254; our IP address is 192.168.1.1

Filename ‘openwrt-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb’.

Load address: 0x46000000

Loading: *

ARP Retry count exceeded; starting again

Wrong Image Type for bootm command

ERROR -91: can’t get kernel image!

Volume en8811h-fw not found!

[Airoha] read firmware from UBI failed.

EN8811H load firmware fail.

Using ethernet@15100000 device

TFTP from server 192.168.1.254; our IP address is 192.168.1.1

Filename ‘openwrt-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb’.

Load address: 0x46000000

Loading: *

F0: 102B 0000

FA: 1040 0000

FA: 1040 0000 [0200]

F9: 3903 0041

F3: 1001 0000 [0200]

F3: 1001 0000

F6: 102C 0000

F5: 1026 0000

00: 1005 0000

FA: 1040 0000

FA: 1040 0000 [0200]

F9: 3903 0041

F3: 1001 0000 [0200]

F3: 1001 0000

F6: 102C 0000

01: 102A 0001

02: 1005 0000

BP: 2000 00C0 [0001]

EC: 0000 0000 [1000]

T0: 0000 00BA [010F]

System halt!

F0: 102B 0000

FA: 1040 0000

FA: 1040 0000 [0200]

F9: 3903 0041

F3: 1001 0000 [0200]

F3: 1001 0000

F6: 102C 0000

F5: 1026 0000

00: 1005 0000

FA: 1040 0000

FA: 1040 0000 [0200]

F9: 3903 0041

F3: 1001 0000 [0200]

F3: 1001 0000

F6: 102C 0000

01: 102A 0001

02: 1005 0000

BP: 2000 00C0 [0001]

EC: 0000 0000 [1000]

T0: 0000 00BA [010F] System halt!

First cancel the tftp command and get onto uboot console (maybe use ctrl+c if the tftp is endless loop) and then issue the commands i’ve posted. The openwrt instructions are from linux,so you have to bootup the initramfs first

Bootup is also explained here:

  • D:\bananapi\24.10.2>

  • D:\bananapi\24.10.2>mtk_uartboot.exe -s COM4 -p mt7986-ram-ddr4-bl2.bin -a -f openwrt-24.10.2-mediatek-filogic-bananapi_bpi-r3-mini-snand-bl31-uboot.fip

  • mtk_uartboot - 0.1.1

  • Using serial port: COM4

  • Handshake…

  • hw code: 0x7986

  • hw sub code: 0x8a00

  • hw ver: 0xca01

  • sw ver: 0x1

  • Baud rate set to 460800

  • sending payload to 0x201000…

  • Checksum: 0x562a

  • Setting baudrate back to 115200

  • Jumping to 0x201000 in aarch64…

  • Waiting for BL2. Message below:

  • ==================================

  • NOTICE: BL2: v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7986-ram-ddr4)

  • NOTICE: BL2: Built : 20:40:36, Jun 23 2025

  • NOTICE: WDT: Cold boot

  • NOTICE: WDT: disabled

  • NOTICE: CPU: MT7986 (2000MHz)

  • NOTICE: EMI: Using DDR4 settings

  • NOTICE: EMI: Detected DRAM size: 2048MB

  • NOTICE: EMI: complex R/W mem test passed

  • NOTICE: Starting UART download handshake …

  • ==================================

  • BL2 UART DL version: 0x10

  • Baudrate set to: 921600

  • FIP sent.

  • ==================================

  • NOTICE: Received FIP 0x1135b1 @ 0x40400000 …

  • ==================================

  • D:\bananapi\24.10.2>mtk_uartboot.exe -s COM4 -p mt7986-ram-ddr4-bl2.bin -a -f openwrt-24.10.2-mediatek-filogic-bananapi_bpi-r3-mini-snand-factory.bin

  • mtk_uartboot - 0.1.1

  • Using serial port: COM4

  • Handshake…

  • hw code: 0x7986

  • hw sub code: 0x8a00

  • hw ver: 0xca01

  • sw ver: 0x1

  • Baud rate set to 460800

  • sending payload to 0x201000…

  • Checksum: 0x562a

  • Setting baudrate back to 115200

  • Jumping to 0x201000 in aarch64…

  • Waiting for BL2. Message below:

  • ==================================

  • NOTICE: BL2: v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7986-ram-ddr4)

  • NOTICE: BL2: Built : 20:40:36, Jun 23 2025

  • NOTICE: WDT: Cold boot

  • NOTICE: WDT: disabled

  • NOTICE: CPU: MT7986 (2000MHz)

  • NOTICE: EMI: Using DDR4 settings

  • NOTICE: EMI: Detected DRAM size: 2048MB

  • NOTICE: EMI: complex R/W mem test passed

  • NOTICE: Starting UART download handshake …

  • ==================================

  • BL2 UART DL version: 0x10

  • Baudrate set to: 921600

  • FIP sent.

  • ==================================

  • NOTICE: Received FIP 0xf20000 @ 0x40400000 …

  • ==================================

  • D:\bananapi\24.10.2>

    • Lista de elementos

I formatted the USB drive with FAT32, put the image on it, and it still gives the same number errors. The only thing that works is when I use CMD and load the following files: mtk_uartboot.exe -s COM4 -p mt7986-ram-ddr4-bl2.bin -a -f openwrt-24.10.2-mediatek-filogic-bananapi_bpi-r3-mini-snand-bl31-uboot.fip and mtk_uartboot.exe -s COM4 -p mt7986-ram-ddr4-bl2.bin -a -f openwrt-24.10.2-mediatek-filogic-bananapi_bpi-r3-mini-snand-factory.bin. This loads the files the manufacturer sent me, but they cause a loop that I can’t stop, and in the end, the USB drive doesn’t finish booting.

  • F0: 102B 0000

  • FA: 1040 0000

  • FA: 1040 0000 [0200]

  • F9: 3903 0041

  • F3: 1001 0000 [0200]

  • F3: 1001 0000

  • F6: 102C 0000

  • F5: 1026 0000

  • 00: 1005 0000

  • FA: 1040 0000

  • FA: 1040 0000 [0200]

  • F9: 3903 0041

  • F3: 1001 0000 [0200]

  • F3: 1001 0000

  • F6: 102C 0000

  • 01: 102A 0001

  • 02: 1005 0000

  • BP: 2000 00C0 [0001]

  • EC: 0000 0000 [1000]

  • T0: 0000 00BA [010F]

  • System halt!

  • F0: 102B 0000

  • FA: 1040 0000

  • FA: 1040 0000 [0200]

  • F9: 3903 0041

  • F3: 1001 0000 [0200]

  • F3: 1001 0000

  • F6: 102C 0000

  • F5: 1026 0000

  • 00: 1005 0000

  • FA: 1040 0000

  • FA: 1040 0000 [0200]

  • F9: 3903 0041

  • F3: 1001 0000 [0200]

  • F3: 1001 0000

  • F6: 102C 0000

  • 01: 102A 0001

  • 02: 1005 0000

  • BP: 2000 00C0 [0001]

  • EC: 0000 0000 [1000]

  • T0: 0000 00BA [010F]

  • System halt!

Here you hang at early state…the uart boot brings board into a state with uboot running only in ram…it basicly loads uboot (fip) into ram and let it running…the uart application exits and then you have to start your serial application (putty,minicom,…) like for normal boot,but without restarting the board. You have to write the full bootchain from this temporary rescue system…either emmc or nand. The mtk-uart process does not write anything,so if you have sw bricked your r3mini it is still bricked,but you can fix it with running uboot started with the command.


Title:

BPI-R3 Mini (MT7986, 2GB) stuck in U-Boot TFTP loop – cannot interrupt autoboot

Post:

Hello,

I am trying to recover a Banana Pi BPI-R3 Mini (MT7986, 2GB RAM, eMMC version) that does not boot from eMMC.

Current situation

The board does not boot normally and shows BootROM output:

F0: 102B 0000
...
System halt!

So I used UART recovery with mtk_uartboot.

What I did

From Windows:

mtk_uartboot.exe -s COM4 -p mt7986-ram-ddr4-bl2.bin -a -f openwrt-24.10.2-mediatek-filogic-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip

This works correctly:

  • DRAM detected: 2048MB
  • BL2 loads
  • FIP loads
  • No errors in UART stage

U-Boot starts successfully.

Problem

After U-Boot starts, it automatically runs a boot script that attempts TFTP:

TFTP from server 192.168.1.254
Filename 'openwrt-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb'
ARP Retry count exceeded
Wrong Image Type for bootm command
ERROR -91: can't get kernel image!

It loops endlessly.

I cannot interrupt autoboot.

  • Pressing space repeatedly does not stop it
  • Holding space does not stop it
  • Ctrl+C does not stop it
  • It continues the TFTP loop immediately

So I cannot reach the => U-Boot prompt to manually flash eMMC.

Question

How can I:

  1. Force stop autoboot?
  2. Disable the automatic TFTP boot command?
  3. Manually access the U-Boot prompt to reflash eMMC?

Is there a way to:

  • Boot directly into U-Boot shell?
  • Clear environment variables from RAM boot?
  • Force eMMC recovery mode?

Hardware:

  • BPI-R3 Mini
  • MT7986
  • 2GB DDR4
  • eMMC version

Thank you.



If you want, I can also:

  • Make a shorter version
  • Make a more technical version
  • Or prepare a version for BananaPi forum specifically

You did everything correctly technically. This is now an environment / boot script issue, not a flashing issue.

please write only in english

if ctrl+C does not work for break the endless-loop (it should), you can also use my uboot fip which tries to boot sdmmc/emmc (but of course this will fail and you will land in uboot console)

https://github.com/frank-w/u-boot/releases/download/CI-BUILD-2026-01-bpi-2026.01-2026-01-16_2142/bpi-r3mini_ram_fip.bin

but you will not have openwrt specific environment…but as you only need to start initramfs it should be enough

please adjust filename and booconfig

usb start
setenv loadaddr=0x50000000
fatload usb 0:1 $loadaddr openwrt-24.10.0-mediatek-filogic-bananapi_bpi-r3mini-initramfs-recovery.itb
bootm $loadaddr#mt7986a-bananapi-bpi-r3mini-emmc