I’m waiting to find out the next steps.
Just read the next section of the instructions i’ve posted
https://openwrt.org/toh/sinovoip/bananapi_bpi_r3_mini#installation
But just do it from serial and for bl2 se PS with mtd-rw
OpenWrt 24.10.5, r29087-d9c5716d1d
- root@Home2:~# mtd write /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mi ni-snand-preloader.bin /dev/mtd0
- Could not open mtd device: /dev/mtd0
- Can’t open device for writing!
- root@Home2:~#
root@OpenWrt:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00200000 00020000 “bl2”
mtd1: 07e00000 00020000 “ubi”
…for bl2 see PS with mtd-rw
-
OpenWrt 24.10.5, r29087-d9c5716d1d
-
-
root@Home2:~# cat /proc/mtd
-
dev: size erasesize name
-
mtd0: 00200000 00020000 “bl2”
-
mtd1: 07e00000 00020000 “ubi”
-
root@Home2:~#
Post is unrelated to my guidance…just recall my information about mapping mtd numbers to partition names
And atill without code tags…
I refer to this section in the openwrt wiki aka PS section
P.S.: in case write to MTD results in error, apply the following:
insmod mtd-rw.ko i_want_a_brick=1
-
opkg update
-
opkg install kmod-mtd-rw
-
insmod mtd-rw i_want_a_brick=1
-
mtd write archivo.bin bl2
-
OpenWrt 24.10.5, r29087-d9c5716d1d
-
-
root@Home2:~# opkg update
-
Downloading https://downloads.openwrt.org/releases/24.10.5/targets/mediatek/filo gic/packages/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_core
-
Downloading https://downloads.openwrt.org/releases/24.10.5/targets/mediatek/filo gic/packages/Packages.sig
-
Signature check passed.
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/base/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_base
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/base/Packages.sig
-
Signature check passed.
-
Downloading https://downloads.openwrt.org/releases/24.10.5/targets/mediatek/filo gic/kmods/6.6.119-1-6a9e125268c43e0bae8cecb014c8ab03/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_kmods
-
Downloading https://downloads.openwrt.org/releases/24.10.5/targets/mediatek/filo gic/kmods/6.6.119-1-6a9e125268c43e0bae8cecb014c8ab03/Packages.sig
-
Signature check passed.
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/luci/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_luci
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/luci/Packages.sig
-
Signature check passed.
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/packages/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_packages
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/packages/Packages.sig
-
Signature check passed.
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/routing/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_routing
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/routing/Packages.sig
-
Signature check passed.
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/telephony/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_telephony
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/telephony/Packages.sig
-
Signature check passed.
-
root@Home2:~#
-
root@Home2:~# opkg install kmod-mtd-rw
-
Package kmod-mtd-rw (6.6.119.2021.02.28~e8776739-r1) installed in root is up to date.
-
root@Home2:~# insmod mtd-rw i_want_a_brick=1
-
root@Home2:~# mtd write archivo.bin bl2
-
Couldn’t open image file: archivo.bin!
-
root@Home2:~# mtd write /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mi
-
ni-snand-preloader.bin /dev/mtd0
-
Unlocking /dev/mtd0 …
-
Writing from /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-snand-preloader.bin to /dev/mtd0 …
-
root@Home2:~#
-
root@Home2:~# ubidetach -m 1
-
root@Home2:~# ubiformat /dev/mtd1
-
ubiformat: mtd1 (nand), size 132120576 bytes (126.0 MiB), 1008 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
-
libscan: scanning eraseblock 1007 – 100 % complete
-
ubiformat: 1008 eraseblocks have valid erase counter, mean value is 9
-
ubiformat: formatting eraseblock 1007 – 100 % complete
-
root@Home2:~# ubiattach -m 1
-
UBI device number 0, total 1008 LEBs (127991808 bytes, 122.0 MiB), available 982 LEBs (124690432 bytes, 118.9 MiB), LEB size 126976 bytes (124.0 KiB)
-
root@Home2:~# volsize=$(wc -c < /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-snand-bl31-uboot.fip)
-
root@Home2:~# ubimkvol /dev/ubi0 -N fip -n 0 -s $volsize -t static
-
Volume ID 0, size 9 LEBs (1142784 bytes, 1.0 MiB), LEB size 126976 bytes (124.0 KiB), static, name “fip”, alignment 1
-
root@Home2:~# ubiupdatevol /dev/ubi0_0 /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-snand-bl31-uboot.fip
-
root@Home2:~# cd /lib/firmware/airoha
-
root@Home2:/lib/firmware/airoha#
-
root@Home2:/lib/firmware/airoha# cat EthMD32.dm.bin EthMD32.DSP.bin > /tmp/en8811h-fw.bin
-
root@Home2:/lib/firmware/airoha# ubimkvol /dev/ubi0 -N en8811h-firmware -n 1 -s 147456 -t static
-
Volume ID 1, size 2 LEBs (253952 bytes, 248.0 KiB), LEB size 126976 bytes (124.0 KiB), static, name “en8811h-firmware”, alignment 1
-
root@Home2:/lib/firmware/airoha# ubiupdatevol /dev/ubi0_1 /tmp/en8811h-fw.bin
-
root@Home2:/lib/firmware/airoha# ubimkvol /dev/ubi0 -n 2 -N ubootenv -s 126976
-
Volume ID 2, size 1 LEBs (126976 bytes, 124.0 KiB), LEB size 126976 bytes (124.0 KiB), dynamic, name “ubootenv”, alignment 1
-
root@Home2:/lib/firmware/airoha# ubimkvol /dev/ubi0 -n 3 -N ubootenv2 -s 126976
-
Volume ID 3, size 1 LEBs (126976 bytes, 124.0 KiB), LEB size 126976 bytes (124.0 KiB), dynamic, name “ubootenv2”, alignment 1
-
root@Home2:/lib/firmware/airoha# volsize=$(wc -c < /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb)
-
root@Home2:/lib/firmware/airoha# ubimkvol /dev/ubi0 -n 4 -N recovery -s $volsize
-
Volume ID 4, size 74 LEBs (9396224 bytes, 8.9 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name “recovery”, alignment 1
-
root@Home2:/lib/firmware/airoha# ubiupdatevol /dev/ubi0_4 /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb
-
root@Home2:/lib/firmware/airoha# volsize=$(wc -c < /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb)
-
root@Home2:/lib/firmware/airoha# ubimkvol /dev/ubi0 -n 5 -N fit -s $volsize
-
Volume ID 5, size 93 LEBs (11808768 bytes, 11.2 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name “fit”, alignment 1
-
root@Home2:/lib/firmware/airoha# ubiupdatevol /dev/ubi0_5 /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
-
root@Home2:/lib/firmware/airoha#
-
root@Home2:/lib/firmware/airoha#
-
root@Home2:/lib/firmware/airoha#
-
root@Home2:/lib/firmware/airoha#
-
Then I restart and this happens
-
F0: 102B 0000
-
FA: 1040 0000
-
FA: 1040 0000 [0200]
-
F9: 0000 0000
-
V0: 0000 0000 [0001]
-
00: 0000 0000
-
BP: 2400 0041 [0000]
-
G0: 1190 0000
-
EC: 0000 0000 [1000]
-
T0: 0000 0217 [010F]
-
Jump to BL
-
NOTICE: BL2: v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7986-spim-nand-ubi-ddr4)
-
NOTICE: BL2: Built : 21:08:22, Dec 17 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: SPI_NAND parses attributes from parameter page.
-
NOTICE: SPI_NAND Detected ID 0xef
-
NOTICE: Page size 2048, Block size 131072, size 134217728
-
NOTICE: UBI: scanning [0x200000 - 0x8000000] …
-
NOTICE: UBI: scanning is finished
-
NOTICE: UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
-
NOTICE: UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
-
NOTICE: UBI: Volume fip (Id #0) size is 1127961 bytes
-
NOTICE: BL2: Booting BL31
-
NOTICE: BL31: v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7986-spim-nand-ubi-ddr4)
-
NOTICE: BL31: Built : 21:08:22, Dec 17 2025
-
U-Boot 2024.10-OpenWrt-r29087-d9c5716d1d (Dec 17 2025 - 21:08:22 +0000)
-
CPU: MediaTek MT7986
-
Model: Bananapi BPi-R3 Mini
-
DRAM: 2 GiB
-
Core: 54 devices, 23 uclasses, devicetree: embed
-
MMC: mmc@11230000: 0
-
Loading Environment from UBI… spi-nand: spi_nand spi_nand@0: Winbond SPI NAND was found.
-
spi-nand: spi_nand spi_nand@0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
-
Read 126976 bytes from volume ubootenv to 00000000bf7c1c00
-
Read 126976 bytes from volume ubootenv2 to 00000000bf7e0c40
-
*** Warning - bad CRC, using default environment
-
In: serial@11002000
-
Out: serial@11002000
-
Err: serial@11002000
-
reset button found
-
Loading Environment from UBI… UBI partition ‘ubi’ already selected
-
Read 126976 bytes from volume ubootenv to 00000000bf7c1c00
-
Read 126976 bytes from volume ubootenv2 to 00000000bf7e0c40
-
*** Warning - bad CRC, using default environment
-
Net: Volume en8811h-fw not found!
-
[Airoha] read firmware from UBI failed.
-
“Synchronous Abort” handler, esr 0x96000004, far 0x110214bfb096c2
-
elr: 0000000041e59dd0 lr : 0000000041e59dbc (reloc)
-
elr: 00000000bff31dd0 lr : 00000000bff31dbc
-
x0 : fffffffffffffffe x1 : 00000000000003e8
-
x2 : 0000000024040000 x3 : 0000000000000000
-
x4 : 0000000000000001 x5 : 00000000a4e50000
-
x6 : 00000000bff2e0a8 x7 : 00000000bfb6a490
-
x8 : 00000000000016c4 x9 : 00000000bf7ff91c
-
x10: 0000000000000002 x11: 0000000000000a84
-
x12: 0000000000000000 x13: 0000000041ee23d0
-
x14: 00000000ffffffff x15: 00000000bf7ffc28
-
x16: 00000000bff2e0a8 x17: 0000000000000000
-
x18: 00000000bf7ffd80 x19: 0000000000000000
-
x20: 00000000bfb1bad0 x21: 0000000000000000
-
x22: 0000000000000000 x23: 0000000000004000
-
x24: 00110214bfb096c2 x25: ffeefdeb404f693e
-
x26: 0000000000000000 x27: 0000000000000000
-
x28: 0000000000000000 x29: 00000000bf7ffb30
-
Code: 37f80460 91000b38 92800020 cb190019 (39400300)
-
Resetting CPU …
-
resetting …
-
F0: 102B 0000
-
FA: 1040 0000
-
FA: 1040 0000 [0200]
-
F9: 0000 0000
-
V0: 0000 0000 [0001]
-
00: 0000 0000
-
BP: 2400 0041 [0000]
-
G0: 1190 0000
-
EC: 0000 0000 [1000]
-
T0: 0000 0217 [010F]
-
Jump to BL
-
NOTICE: BL2: v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7986-spim-nand-ubi-ddr4)
-
NOTICE: BL2: Built : 21:08:22, Dec 17 2025
-
NOTICE: WDT: [40000000] Software reset (reboot)
-
NOTICE: CPU: MT7986 (2000MHz)
-
NOTICE: EMI: Using DDR4 settings
-
NOTICE: EMI: Detected DRAM size: 2048MB
-
NOTICE: EMI: complex R/W mem test passed
-
NOTICE: SPI_NAND parses attributes from parameter page.
-
NOTICE: SPI_NAND Detected ID 0xef
-
NOTICE: Page size 2048, Block size 131072, size 134217728
-
NOTICE: UBI: scanning [0x200000 - 0x8000000] …
-
NOTICE: UBI: scanning is finished
-
NOTICE: UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
-
NOTICE: UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
-
NOTICE: UBI: Volume fip (Id #0) size is 1127961 bytes
-
NOTICE: BL2: Booting BL31
-
NOTICE: BL31: v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7986-spim-nand-ubi-ddr4)
-
NOTICE: BL31: Built : 21:08:22, Dec 17 2025
-
U-Boot 2024.10-OpenWrt-r29087-d9c5716d1d (Dec 17 2025 - 21:08:22 +0000)
-
CPU: MediaTek MT7986
-
Model: Bananapi BPi-R3 Mini
-
DRAM: 2 GiB
-
Core: 54 devices, 23 uclasses, devicetree: embed
-
MMC: mmc@11230000: 0
-
Loading Environment from UBI… spi-nand: spi_nand spi_nand@0: Winbond SPI NAND was found.
-
spi-nand: spi_nand spi_nand@0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
-
Read 126976 bytes from volume ubootenv to 00000000bf7c1c00
-
Read 126976 bytes from volume ubootenv2 to 00000000bf7e0c40
-
*** Warning - bad CRC, using default environment
-
In: serial@11002000
-
Out: serial@11002000
-
Err: serial@11002000
-
reset button found
-
Loading Environment from UBI… UBI partition ‘ubi’ already selected
-
Read 126976 bytes from volume ubootenv to 00000000bf7c1c00
-
Read 126976 bytes from volume ubootenv2 to 00000000bf7e0c40
-
*** Warning - bad CRC, using default environment
-
Net: Volume en8811h-fw not found!
-
[Airoha] read firmware from UBI failed.
-
“Synchronous Abort” handler, esr 0x96000004, far 0x110214bfb096c2
-
elr: 0000000041e59dd0 lr : 0000000041e59dbc (reloc)
-
elr: 00000000bff31dd0 lr : 00000000bff31dbc
-
x0 : fffffffffffffffe x1 : 00000000000003e8
-
x2 : 0000000024040000 x3 : 0000000000000000
-
x4 : 0000000000000001 x5 : 00000000a4e50000
-
x6 : 00000000bff2e0a8 x7 : 00000000bfb6a490
-
x8 : 00000000000016c4 x9 : 00000000bf7ff91c
-
x10: 0000000000000002 x11: 0000000000000a84
-
x12: 0000000000000000 x13: 0000000041ee23d0
-
x14: 00000000ffffffff x15: 00000000bf7ffc28
-
x16: 00000000bff2e0a8 x17: 0000000000000000
-
x18: 00000000bf7ffd80 x19: 0000000000000000
-
x20: 00000000bfb1bad0 x21: 0000000000000000
-
x22: 0000000000000000 x23: 0000000000004000
-
x24: 00110214bfb096c2 x25: ffeefdeb404f693e
-
x26: 0000000000000000 x27: 0000000000000000
-
x28: 0000000000000000 x29: 00000000bf7ffb30
-
Code: 37f80460 91000b38 92800020 cb190019 (39400300)
-
Resetting CPU …
-
resetting …
-
F0: 102B 0000
-
FA: 1040 0000
-
FA: 1040 0000 [0200]
-
F9: 0000 0000
-
V0: 0000 0000 [0001]
-
00: 0000 0000
-
BP: 2400 0041 [0000]
-
G0: 1190 0000
-
EC: 0000 0000 [1000]
-
T0: 0000 0217 [010F]
-
Jump to BL
-
NOTICE: BL2: v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7986-spim-nand-ubi-ddr4)
-
NOTICE: BL2: Built : 21:08:22, Dec 17 2025
-
NOTICE: WDT: [40000000] Software reset (reboot)
-
NOTICE: CPU: MT7986 (2000MHz)
-
NOTICE: EMI: Using DDR4 settings
-
NOTICE: EMI: Detected DRAM size: 2048MB
-
NOTICE: EMI: complex R/W mem test passed
-
NOTICE: SPI_NAND parses attributes from parameter page.
-
NOTICE: SPI_NAND Detected ID 0xef
-
NOTICE: Page size 2048, Block size 131072, size 134217728
-
NOTICE: UBI: scanning [0x200000 - 0x8000000] …
-
NOTICE: UBI: scanning is finished
-
NOTICE: UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
-
NOTICE: UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
-
NOTICE: UBI: Volume fip (Id #0) size is 1127961 bytes
-
NOTICE: BL2: Booting BL31
-
NOTICE: BL31: v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7986-spim-nand-ubi-ddr4)
-
NOTICE: BL31: Built : 21:08:22, Dec 17 2025
-
U-Boot 2024.10-OpenWrt-r29087-d9c5716d1d (Dec 17 2025 - 21:08:22 +0000)
-
CPU: MediaTek MT7986
-
Model: Bananapi BPi-R3 Mini
-
DRAM: 2 GiB
-
Core: 54 devices, 23 uclasses, devicetree: embed
-
MMC: mmc@11230000: 0
-
Loading Environment from UBI… spi-nand: spi_nand spi_nand@0: Winbond SPI NAND was found.
-
spi-nand: spi_nand spi_nand@0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
-
Read 126976 bytes from volume ubootenv to 00000000bf7c1c00
-
Read 126976 bytes from volume ubootenv2 to 00000000bf7e0c40
-
*** Warning - bad CRC, using default environment
-
In: serial@11002000
-
Out: serial@11002000
-
Err: serial@11002000
-
reset button found
-
Loading Environment from UBI… UBI partition ‘ubi’ already selected
-
Read 126976 bytes from volume ubootenv to 00000000bf7c1c00
-
Read 126976 bytes from volume ubootenv2 to 00000000bf7e0c40
-
*** Warning - bad CRC, using default environment
-
Net: Volume en8811h-fw not found!
-
[Airoha] read firmware from UBI failed.
-
“Synchronous Abort” handler, esr 0x96000004, far 0x110214bfb096c2
-
elr: 0000000041e59dd0 lr : 0000000041e59dbc (reloc)
-
elr: 00000000bff31dd0 lr : 00000000bff31dbc
-
x0 : fffffffffffffffe x1 : 00000000000003e8
-
x2 : 0000000024040000 x3 : 0000000000000000
-
x4 : 0000000000000001 x5 : 00000000a4e50000
-
x6 : 00000000bff2e0a8 x7 : 00000000bfb6a490
-
x8 : 00000000000016c4 x9 : 00000000bf7ff91c
-
x10: 0000000000000002 x11: 0000000000000a84
-
x12: 0000000000000000 x13: 0000000041ee23d0
-
x14: 00000000ffffffff x15: 00000000bf7ffc28
-
x16: 00000000bff2e0a8 x17: 0000000000000000
-
x18: 00000000bf7ffd80 x19: 0000000000000000
-
x20: 00000000bfb1bad0 x21: 0000000000000000
-
x22: 0000000000000000 x23: 0000000000004000
-
x24: 00110214bfb096c2 x25: ffeefdeb404f693e
-
x26: 0000000000000000 x27: 0000000000000000
-
x28: 0000000000000000 x29: 00000000bf7ffb30
-
Code: 37f80460 91000b38 92800020 cb190019 (39400300)
-
Resetting CPU …
-
resetting …
-
F0: 102B 0000
-
FA: 1040 0000
-
FA: 1040 0000 [0200]
-
F9: 0000 0000
-
V0: 0000 0000 [0001]
-
00: 0000 0000
-
BP: 2400 0041 [0000]
-
G0: 1190 0000
-
EC: 0000 0000 [1000]
-
T0: 0000 0217 [010F]
-
Jump to BL
-
NOTICE: BL2: v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7986-spim-nand-ubi-ddr4)
-
NOTICE: BL2: Built : 21:08:22, Dec 17 2025
-
NOTICE: WDT: [40000000] Software reset (reboot)
-
NOTICE: CPU: MT7986 (2002MHz)
-
NOTICE: EMI: Using DDR4 settings
-
NOTICE: EMI: Detected DRAM size: 2048MB
-
NOTICE: EMI: complex R/W mem test passed
-
NOTICE: SPI_NAND parses attributes from parameter page.
-
NOTICE: SPI_NAND Detected ID 0xef
-
NOTICE: Page size 2048, Block size 131072, size 134217728
-
NOTICE: UBI: scanning [0x200000 - 0x8000000] …
-
NOTICE: UBI: scanning is finished
-
NOTICE: UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
-
NOTICE: UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
-
NOTICE: UBI: Volume fip (Id #0) size is 1127961 bytes
-
NOTICE: BL2: Booting BL31
-
NOTICE: BL31: v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7986-spim-nand-ubi-ddr4)
-
NOTICE: BL31: Built : 21:08:22, Dec 17 2025
-
U-Boot 2024.10-OpenWrt-r29087-d9c5716d1d (Dec 17 2025 - 21:08:22 +0000)
-
CPU: MediaTek MT7986
-
Model: Bananapi BPi-R3 Mini
-
DRAM: 2 GiB
-
Core: 54 devices, 23 uclasses, devicetree: embed
-
MMC: mmc@11230000: 0
-
Loading Environment from UBI… spi-nand: spi_nand spi_nand@0: Winbond SPI NAND was found.
-
spi-nand: spi_nand spi_nand@0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
-
Read 126976 bytes from volume ubootenv to 00000000bf7c1c00
-
Read 126976 bytes from volume ubootenv2 to 00000000bf7e0c40
-
*** Warning - bad CRC, using default environment
-
In: serial@11002000
-
Out: serial@11002000
-
Err: serial@11002000
-
reset button found
-
Loading Environment from UBI… UBI partition ‘ubi’ already selected
-
Read 126976 bytes from volume ubootenv to 00000000bf7c1c00
-
Read 126976 bytes from volume ubootenv2 to 00000000bf7e0c40
-
*** Warning - bad CRC, using default environment
-
Net: Volume en8811h-fw not found!
-
[Airoha] read firmware from UBI failed.
-
“Synchronous Abort” handler, esr 0x96000004, far 0x110214bfb096c2
-
elr: 0000000041e59dd0 lr : 0000000041e59dbc (reloc)
-
elr: 00000000bff31dd0 lr : 00000000bff31dbc
-
x0 : fffffffffffffffe x1 : 00000000000003e8
-
x2 : 0000000024040000 x3 : 0000000000000000
-
x4 : 0000000000000001 x5 : 00000000a4e50000
-
x6 : 00000000bff2e0a8 x7 : 00000000bfb6a490
-
x8 : 00000000000016c4 x9 : 00000000bf7ff91c
-
x10: 0000000000000002 x11: 0000000000000a84
-
x12: 0000000000000000 x13: 0000000041ee23d0
-
x14: 00000000ffffffff x15: 00000000bf7ffc28
-
x16: 00000000bff2e0a8 x17: 0000000000000000
-
x18: 00000000bf7ffd80 x19: 0000000000000000
-
x20: 00000000bfb1bad0 x21: 0000000000000000
-
x22: 0000000000000000 x23: 0000000000004000
-
x24: 00110214bfb096c2 x25: ffeefdeb404f693e
-
x26: 0000000000000000 x27: 0000000000000000
-
x28: 0000000000000000 x29: 00000000bf7ffb30
-
Code: 37f80460 91000b38 92800020 cb190019 (39400300)
-
Resetting CPU …
-
resetting …
-
F0: 102B 0000
-
FA: 1040 0000
-
FA: 1040 0000 [0200]
-
F9: 0000 0000
-
V0: 0000 0000 [0001]
-
00: 0000 0000
-
BP: 2400 0041 [0000]
-
G0: 1190 0000
-
EC: 0000 0000 [1000]
-
T0: 0000 0217 [010F]
-
Jump to BL
-
NOTICE: BL2: v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7986-spim-nand-ubi-ddr4)
-
NOTICE: BL2: Built : 21:08:22, Dec 17 2025
-
NOTICE: WDT: [40000000] Software reset (reboot)
-
NOTICE: CPU: MT7986 (2000MHz)
-
NOTICE: EMI: Using DDR4 settings
-
NOTICE: EMI: Detected DRAM size: 2048MB
-
NOTICE: EMI: complex R/W mem test passed
-
NOTICE: SPI_NAND parses attributes from parameter page.
-
NOTICE: SPI_NAND Detected ID 0xef
-
NOTICE: Page size 2048, Block size 131072, size 134217728
-
NOTICE: UBI: scanning [0x200000 - 0x8000000] …
-
NOTICE: UBI: scanning is finished
-
NOTICE: UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
-
NOTICE: UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
-
NOTICE: UBI: Volume fip (Id #0) size is 1127961 bytes
-
NOTICE: BL2: Booting BL31
-
NOTICE: BL31: v2.10.0 (release):OpenWrt v2024.01.17~bacca82a-3 (mt7986-spim-nand-ubi-ddr4)
-
NOTICE: BL31: Built : 21:08:22, Dec 17 2025
-
U-Boot 2024.10-OpenWrt-r29087-d9c5716d1d (Dec 17 2025 - 21:08:22 +0000)
-
CPU: MediaTek MT7986
-
Model: Bananapi BPi-R3 Mini
-
DRAM: 2 GiB
-
Core: 54 devices, 23 uclasses, devicetree: embed
-
MMC: mmc@11230000: 0
-
Loading Environment from UBI… spi-nand: spi_nand spi_nand@0: Winbond SPI NAND was found.
-
spi-nand: spi_nand spi_nand@0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
-
Read 126976 bytes from volume ubootenv to 00000000bf7c1c00
-
Read 126976 bytes from volume ubootenv2 to 00000000bf7e0c40
-
*** Warning - bad CRC, using default environment
-
In: serial@11002000
-
Out: serial@11002000
-
Err: serial@11002000
-
reset button found
-
Loading Environment from UBI… UBI partition ‘ubi’ already selected
-
Read 126976 bytes from volume ubootenv to 00000000bf7c1c00
-
Read 126976 bytes from volume ubootenv2 to 00000000bf7e0c40
-
*** Warning - bad CRC, using default environment
-
Net: Volume en8811h-fw not found!
-
[Airoha] read firmware from UBI failed.
-
“Synchronous Abort” handler, esr 0x96000004, far 0x110214bfb096c2
-
elr: 0000000041e59dd0 lr : 0000000041e59dbc (reloc)
-
elr: 00000000bff31dd0 lr : 00000000bff31dbc
-
x0 : fffffffffffffffe x1 : 00000000000003e8
-
x2 : 0000000024040000 x3 : 0000000000000000
-
x4 : 0000000000000001 x5 : 00000000a4e50000
-
x6 : 00000000bff2e0a8 x7 : 00000000bfb6a490
-
x8 : 00000000000016c4 x9 : 00000000bf7ff91c
-
x10: 0000000000000002 x11: 0000000000000a84
-
x12: 0000000000000000 x13: 0000000041ee23d0
-
x14: 00000000ffffffff x15: 00000000bf7ffc28
-
x16: 00000000bff2e0a8 x17: 0000000000000000
-
x18: 00000000bf7ffd80 x19: 0000000000000000
-
x20: 00000000bfb1bad0 x21: 0000000000000000
-
x22: 0000000000000000 x23: 0000000000004000
-
x24: 00110214bfb096c2 x25: ffeefdeb404f693e
-
x26: 0000000000000000 x27: 0000000000000000
-
x28: 0000000000000000 x29: 00000000bf7ffb30
-
Code: 37f80460 91000b38 92800020 cb190019 (39400300)
-
Resetting CPU …
-
resetting …
-
F0: 102B 0000
-
FA: 1040 0000
-
FA: 1040 0000 [0200]
-
F9: 0000 0000
-
V0: 0000 0000 [0001]
-
00: 0000 0000
-
BP: 2400 0041 [0000]
-
G0: 1190 0000
-
EC: 0000 0000 [1000]
-
T0: 0000 0218 [010F]
-
Jump to BL
Read your error messages and put output in code tags!
For this boot again emmc create this ubi partition (described later in wiki) and flash needed files there.
-
[quote=“frank-w, post:88, topic:21821”]
-
Read your error messages and put output in code tags!
-
[/quote]
-
OpenWrt 24.10.5, r29087-d9c5716d1d
-
-
root@Home2:~# opkg update
-
Downloading https://downloads.openwrt.org/releases/24.10.5/targets/mediatek/filo gic/packages/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_core
-
Downloading https://downloads.openwrt.org/releases/24.10.5/targets/mediatek/filo gic/packages/Packages.sig
-
Signature check passed.
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/base/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_base
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/base/Packages.sig
-
Signature check passed.
-
Downloading https://downloads.openwrt.org/releases/24.10.5/targets/mediatek/filo gic/kmods/6.6.119-1-6a9e125268c43e0bae8cecb014c8ab03/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_kmods
-
Downloading https://downloads.openwrt.org/releases/24.10.5/targets/mediatek/filo gic/kmods/6.6.119-1-6a9e125268c43e0bae8cecb014c8ab03/Packages.sig
-
Signature check passed.
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/luci/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_luci
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/luci/Packages.sig
-
Signature check passed.
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/packages/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_packages
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/packages/Packages.sig
-
Signature check passed.
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/routing/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_routing
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/routing/Packages.sig
-
Signature check passed.
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/telephony/Packages.gz
-
Updated list of available packages in /var/opkg-lists/openwrt_telephony
-
Downloading https://downloads.openwrt.org/releases/24.10.5/packages/aarch64_cort ex-a53/telephony/Packages.sig
-
Signature check passed.
-
root@Home2:~#
-
root@Home2:~# opkg install kmod-mtd-rw
-
Package kmod-mtd-rw (6.6.119.2021.02.28~e8776739-r1) installed in root is up to date.
-
root@Home2:~# insmod mtd-rw i_want_a_brick=1
-
root@Home2:~# mtd write archivo.bin bl2
-
Couldn’t open image file: archivo.bin!
-
root@Home2:~# mtd write /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mi
-
ni-snand-preloader.bin /dev/mtd0
-
Unlocking /dev/mtd0 …
-
Writing from /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-snand-preloader.bin to /dev/mtd0 …
-
root@Home2:~#
-
root@Home2:~# ubidetach -m 1
-
root@Home2:~# ubiformat /dev/mtd1
-
ubiformat: mtd1 (nand), size 132120576 bytes (126.0 MiB), 1008 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
-
libscan: scanning eraseblock 1007 – 100 % complete
-
ubiformat: 1008 eraseblocks have valid erase counter, mean value is 9
-
ubiformat: formatting eraseblock 1007 – 100 % complete
-
root@Home2:~# ubiattach -m 1
-
UBI device number 0, total 1008 LEBs (127991808 bytes, 122.0 MiB), available 982 LEBs (124690432 bytes, 118.9 MiB), LEB size 126976 bytes (124.0 KiB)
-
root@Home2:~# volsize=$(wc -c < /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-snand-bl31-uboot.fip)
-
root@Home2:~# ubimkvol /dev/ubi0 -N fip -n 0 -s $volsize -t static
-
Volume ID 0, size 9 LEBs (1142784 bytes, 1.0 MiB), LEB size 126976 bytes (124.0 KiB), static, name “fip”, alignment 1
-
root@Home2:~# ubiupdatevol /dev/ubi0_0 /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-snand-bl31-uboot.fip
-
root@Home2:~# cd /lib/firmware/airoha
-
root@Home2:/lib/firmware/airoha#
-
root@Home2:/lib/firmware/airoha# cat EthMD32.dm.bin EthMD32.DSP.bin > /tmp/en8811h-fw.bin
-
root@Home2:/lib/firmware/airoha# ubimkvol /dev/ubi0 -N en8811h-firmware -n 1 -s 147456 -t static
-
Volume ID 1, size 2 LEBs (253952 bytes, 248.0 KiB), LEB size 126976 bytes (124.0 KiB), static, name “en8811h-firmware”, alignment 1
-
root@Home2:/lib/firmware/airoha# ubiupdatevol /dev/ubi0_1 /tmp/en8811h-fw.bin
-
root@Home2:/lib/firmware/airoha# ubimkvol /dev/ubi0 -n 2 -N ubootenv -s 126976
-
Volume ID 2, size 1 LEBs (126976 bytes, 124.0 KiB), LEB size 126976 bytes (124.0 KiB), dynamic, name “ubootenv”, alignment 1
-
root@Home2:/lib/firmware/airoha# ubimkvol /dev/ubi0 -n 3 -N ubootenv2 -s 126976
-
Volume ID 3, size 1 LEBs (126976 bytes, 124.0 KiB), LEB size 126976 bytes (124.0 KiB), dynamic, name “ubootenv2”, alignment 1
-
root@Home2:/lib/firmware/airoha# volsize=$(wc -c < /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb)
-
root@Home2:/lib/firmware/airoha# ubimkvol /dev/ubi0 -n 4 -N recovery -s $volsize
-
Volume ID 4, size 74 LEBs (9396224 bytes, 8.9 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name “recovery”, alignment 1
-
root@Home2:/lib/firmware/airoha# ubiupdatevol /dev/ubi0_4 /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb
-
root@Home2:/lib/firmware/airoha# volsize=$(wc -c < /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb)
-
root@Home2:/lib/firmware/airoha# ubimkvol /dev/ubi0 -n 5 -N fit -s $volsize
-
Volume ID 5, size 93 LEBs (11808768 bytes, 11.2 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name “fit”, alignment 1
-
root@Home2:/lib/firmware/airoha# ubiupdatevol /dev/ubi0_5 /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
-
root@Home2:/lib/firmware/airoha#
It didn’t give any errors this time.
Still same error and still no code tags…
This is what I’m putting and it keeps going in an infinite loop.
-
opkg update
-
opkg install kmod-mtd-rw
-
insmod mtd-rw i_want_a_brick=1
-
mtd write archivo.bin bl2
-
mtd write /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-snand-preloader.bin /dev/mtd0
-
ubidetach -m 1
-
ubiformat /dev/mtd1
-
ubiattach -m 1
-
volsize=$(wc -c < /tmp/openwrt-24.10.5-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 /tmp/openwrt-24.10.5-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-firmware -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 < /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb)
-
ubimkvol /dev/ubi0 -n 4 -N recovery -s $volsize
-
ubiupdatevol /dev/ubi0_4 /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb
-
volsize=$(wc -c < /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb)
-
ubimkvol /dev/ubi0 -n 5 -N fit -s $volsize
-
ubiupdatevol /dev/ubi0_5 /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
You are right — that error is expected.
archivo.bin was only a placeholder in the example.
The real command I used (and that works) is:
mtd write /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-snand-preloader.bin bl2
After loading kmod-mtd-rw and running:
insmod mtd-rw i_want_a_brick=1
the write to the bl2 partition succeeds.
So the error shown above is simply because the file archivo.bin
does not exist, not because of an MTD or permission issue.
Thanks for pointing out the importance of mapping MTD names correctly and for the reminder about using code tags.
But you still not follow it…
For the crash you have to flash the phy firmware to the right ubi volume…
Followed by
ubimkvol /dev/ubi0 -N en8811h-fw -n 1 -s 147456 -t static
cd /lib/firmware/airoha
cat EthMD32.dm.bin EthMD32.DSP.bin > /tmp/en8811h-fw.bin
ubimkvol /dev/ubi0 -N en8811h-firmware -n 1 -s 147456 -t static
ubiupdatevol /dev/ubi0_1 /tmp/en8811h-fw.bin
Possibly you have to delete partition 1 if you created with the other name before doing above commands
ubirmvol /dev/ubi0 -N en8811h-firmware
Solved: U-Boot loop caused by wrong EN8811H UBI volume name
The issue was not a broken NAND, OpenWrt bug, or temporary firmware loss.
The boot loop and crash:
-
Volume en8811h-fw not found!
-
[Airoha] read firmware from UBI failed.
-
Synchronous Abort
were caused by a wrong UBI volume name for the EN8811H PHY firmware.
I originally created the volume as:
-
en8811h-firmware
but U-Boot 24.10.x expects the volume name to be exactly:
-
en8811h-fw
Because of this mismatch, U-Boot could not load the PHY firmware and crashed during early boot.
Fix (booted into OpenWrt with NAND selected)
-
cd /lib/firmware/airoha
-
cat EthMD32.dm.bin EthMD32.DSP.bin > /tmp/en8811h-fw.bin
-
ubirmvol /dev/ubi0 -N en8811h-firmware 2>/dev/null
-
ubimkvol /dev/ubi0 -N en8811h-fw -n 1 -s 147456 -t static
-
ubiupdatevol /dev/ubi0_1 /tmp/en8811h-fw.bin
-
sync
-
reboot
Result
- U-Boot successfully loads the EN8811H PHY firmware
- Boot loop is gone
- System boots normally from NAND
- NAND and eMMC are both in a good state
Root cause: incorrect UBI volume name for the PHY firmware.
Now the NAND and eMMC are working. I’d like it to have the 8GB on the eMMC
What should I do now?
Hi everyone,
I’m trying to get 2.5Gb/s speed on my BPI-R3 Mini running OpenWrt 24.10.5.
- PHY: Airoha EN8811H
- Driver:
mtk_soc_eth - Using Cat8 cables
- Connected to a 2.5Gb/s switch
Right now, the link only reaches 1Gb/s, even though the hardware supports 2.5Gb/s. I tried using ethtool to force it, but it still shows 1Gb/s.
Has anyone successfully enabled 2.5Gb/s on the EN8811H with OpenWrt? Is there a driver update or workaround?
Any help or guidance would be greatly appreciated!
For 8gb there are many threads for each board…just read there. It is not recommended to increase rootfs to 8gb because it may break sysupgrade. Add an additional partition and mount it for data.
For speed 2500 i have no idea, you can look with ethtool what is advertised local and from remote side…
opkg update
opkg install ethtool
ethtool eth0
ethtool eth1
ethtool -i eth0
ethtool -i eth1
#!/bin/sh
Script para diagnosticar la negociación 2.5G en BPI-R3 Mini
echo “=== STATUS ACTUAL DE ETH0 ===”
ethtool eth0
echo “=== STATUS ACTUAL DE ETH1 ===”
ethtool eth1
echo “=== ADVERTISED Y LINK PARTNER INFO ===”
echo “— ETH0 —”
ethtool -a eth0
ethtool -i eth0
echo “— ETH1 —”
ethtool -a eth1
ethtool -i eth1
echo “=== FORZAR AUTONEGOCIACIÓN y MODO 2.5G ===”
echo “Intentando autoneg on, advertir 2.5G…”
ip link set eth0 down
ethtool -s eth0 autoneg on advertise 0x80000000002
ip link set eth0 up
ip link set eth1 down
ethtool -s eth1 autoneg on advertise 0x80000000002
ip link set eth1 up
echo “=== NUEVO STATUS DESPUÉS DE INTENTO ===”
ethtool eth0 | grep -i speed
ethtool eth1 | grep -i speed
echo “=== PHY LOGS RECIENTES ===”
dmesg | tail -n 30 | grep -i en8811h

