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

  • < D:\bananapi\24.10.5>mtk_uartboot.exe -s COM4 -p mt7986-ram-ddr4-bl2.bin -a -f bpi.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 0x56bcd @ 0x40400000 …

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

  • D:\bananapi\24.10.5>

  • BPI-R3M> usb start

  • starting USB…

  • xhci-mtk xhci@11200000: hcd: 0x0000000011200000, ippc: 0x0000000011203e00

  • xhci-mtk xhci@11200000: ports disabled mask: u3p-0x0, u2p-0x0

  • xhci-mtk xhci@11200000: u2p:2, u3p:1

  • Starting the controller

  • USB XHCI 1.10

  • Bus xhci@11200000: 2 USB Device(s) found

  •    scanning usb for storage devices... 1 Storage Device(s) found
    
  • BPI-R3M> usb reset

  • resetting USB…

  • xhci-mtk xhci@11200000: hcd: 0x0000000011200000, ippc: 0x0000000011203e00

  • xhci-mtk xhci@11200000: ports disabled mask: u3p-0x0, u2p-0x0

  • xhci-mtk xhci@11200000: u2p:2, u3p:1

  • Starting the controller

  • USB XHCI 1.10

  • Bus xhci@11200000: 2 USB Device(s) found

  •    scanning usb for storage devices... 1 Storage Device(s) found
    
  • BPI-R3M> usb storage

  • Device 0: Vendor: HP Rev: 2048 Prod: v100w

  •         Type: Removable Hard Disk
    
  •         Capacity: 1912.0 MB = 1.8 GB (3915776 x 512)
    
  • BPI-R3M> fatls usb 0:1

  •         System Volume Information/
    
  • 9371648 openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb

  • 1 file(s), 1 dir(s)

  • BPI-R3M> setenv loadaddr 0x50000000

  • BPI-R3M> fatload usb 0:1 ${loadaddr} openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb

  • 9371648 bytes read in 382 ms (23.4 MiB/s)

  • BPI-R3M> bootm ${loadaddr}

  • Loading kernel (any) from FIT Image at 50000000 …

  • Using ‘config-mt7986a-bananapi-bpi-r3-mini’ configuration

  • Trying ‘kernel-1’ kernel subimage

  •  Description:  ARM64 OpenWrt Linux-6.6.119
    
  •  Type:         Kernel Image
    
  •  Compression:  lzma compressed
    
  •  Data Start:   0x500000e8
    
  •  Data Size:    4136083 Bytes = 3.9 MiB
    
  •  Architecture: AArch64
    
  •  OS:           Linux
    
  •  Load Address: 0x44000000
    
  •  Entry Point:  0x44000000
    
  •  Hash algo:    crc32
    
  •  Hash value:   b63509b3
    
  •  Hash algo:    sha1
    
  •  Hash value:   145386a0e1b34cbd782ad9e7435f9e0568105e94
    
  • Verifying Hash Integrity … crc32+ sha1+ OK

  • Loading ramdisk (any) from FIT Image at 50000000 …

  • Using ‘config-mt7986a-bananapi-bpi-r3-mini’ configuration

  • Trying ‘initrd-1’ ramdisk subimage

  •  Description:  ARM64 OpenWrt bananapi_bpi-r3-mini initrd
    
  •  Type:         RAMDisk Image
    
  •  Compression:  uncompressed
    
  •  Data Start:   0x503f1ebc
    
  •  Data Size:    5182304 Bytes = 4.9 MiB
    
  •  Architecture: AArch64
    
  •  OS:           Linux
    
  •  Load Address: unavailable
    
  •  Entry Point:  unavailable
    
  •  Hash algo:    crc32
    
  •  Hash value:   ea3fd7e6
    
  •  Hash algo:    sha1
    
  •  Hash value:   703218d81c143528c72efae708fc75a9c7993688
    
  • Verifying Hash Integrity … crc32+ sha1+ OK

  • Loading fdt (any) from FIT Image at 50000000 …

  • Using ‘config-mt7986a-bananapi-bpi-r3-mini’ configuration

  • Trying ‘fdt-1’ fdt subimage

  •  Description:  ARM64 OpenWrt bananapi_bpi-r3-mini device tree blob
    
  •  Type:         Flat Device Tree
    
  •  Compression:  uncompressed
    
  •  Data Start:   0x508e332c
    
  •  Data Size:    29582 Bytes = 28.9 KiB
    
  •  Architecture: AArch64
    
  •  Load Address: 0x43f00000
    
  •  Hash algo:    crc32
    
  •  Hash value:   4b0d7ab3
    
  •  Hash algo:    sha1
    
  •  Hash value:   a009a90e8603a5ce3e2499d8ed32575b7914db4d
    
  • Verifying Hash Integrity … crc32+ sha1+ OK

  • Loading fdt from 0x508e332c to 0x43f00000

  • Booting using the fdt blob at 0x43f00000

  • Working FDT set to 43f00000

  • Uncompressing Kernel Image to 44000000

  • Loading Ramdisk to be30a000, end be7fb360 … OK

  • Loading Device Tree to 00000000be2ff000, end 00000000be30938d … OK

  • Working FDT set to be2ff000

  • Add ‘ramoops@42ff0000’ node failed: FDT_ERR_EXISTS

  • Starting kernel …

  • [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]

  • [ 0.000000] Linux version 6.6.119 (builder@buildhost) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 13.3.0 r29087-d9c5716d1d) 13.3.0, GNU ld (GNU Binutils) 2.42) #0 SMP Wed Dec 17 21:08:22 2025

  • [ 0.000000] Machine model: Bananapi BPi-R3 Mini

  • [ 0.000000] OF: reserved mem: 0x0000000042ff0000…0x0000000042ffffff (64 KiB) map non-reusable ramoops@42ff0000

  • [ 0.000000] OF: reserved mem: 0x0000000043000000…0x000000004302ffff (192 KiB) nomap non-reusable secmon@43000000

  • [ 0.000000] OF: reserved mem: 0x000000004fc00000…0x000000004fcfffff (1024 KiB) nomap non-reusable wmcpu-reserved@4fc00000

  • [ 0.000000] OF: reserved mem: 0x000000004fd00000…0x000000004fd3ffff (256 KiB) nomap non-reusable wo-emi@4fd00000

  • [ 0.000000] OF: reserved mem: 0x000000004fd40000…0x000000004fd7ffff (256 KiB) nomap non-reusable wo-emi@4fd40000

  • [ 0.000000] OF: reserved mem: 0x000000004fd80000…0x000000004ffbffff (2304 KiB) nomap non-reusable wo-data@4fd80000

  • [ 0.000000] Zone ranges:

  • [ 0.000000] DMA [mem 0x0000000040000000-0x00000000bfffffff]

  • [ 0.000000] DMA32 empty

  • [ 0.000000] Normal empty

  • [ 0.000000] Movable zone start for each node

  • [ 0.000000] Early memory node ranges

  • [ 0.000000] node 0: [mem 0x0000000040000000-0x0000000042ffffff]

  • [ 0.000000] node 0: [mem 0x0000000043000000-0x000000004302ffff]

  • [ 0.000000] node 0: [mem 0x0000000043030000-0x000000004fbfffff]

  • [ 0.000000] node 0: [mem 0x000000004fc00000-0x000000004ffbffff]

  • [ 0.000000] node 0: [mem 0x000000004ffc0000-0x00000000bfffffff]

  • [ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x00000000bfffffff]

  • [ 0.000000] psci: probing for conduit method from DT.

  • [ 0.000000] psci: PSCIv1.1 detected in firmware.

  • [ 0.000000] psci: Using standard PSCI v0.2 function IDs

  • [ 0.000000] psci: MIGRATE_INFO_TYPE not supported.

  • [ 0.000000] psci: SMC Calling Convention v1.5

  • [ 0.000000] percpu: Embedded 18 pages/cpu s35112 r8192 d30424 u73728

  • [ 0.000000] pcpu-alloc: s35112 r8192 d30424 u73728 alloc=18*4096

  • [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3

  • [ 0.000000] Detected VIPT I-cache on CPU0

  • [ 0.000000] CPU features: detected: GIC system register CPU interface

  • [ 0.000000] CPU features: kernel page table isolation disabled by kernel configuration

  • [ 0.000000] alternatives: applying boot alternatives

  • [ 0.000000] Kernel command line:

  • [ 0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)

  • [ 0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)

  • [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 516096

  • [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off

  • [ 0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 2MB

  • [ 0.000000] software IO TLB: area num 4.

  • [ 0.000000] software IO TLB: mapped [mem 0x00000000bf67e000-0x00000000bf87e000] (2MB)

  • [ 0.000000] Memory: 2032840K/2097152K available (9088K kernel code, 1002K rwdata, 1676K rodata, 448K init, 305K bss, 64312K reserved, 0K cma-reserved)

  • [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1

  • [ 0.000000] rcu: Hierarchical RCU implementation.

  • [ 0.000000] Tracing variant of Tasks RCU enabled.

  • [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.

  • [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0

  • [ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode

  • [ 0.000000] GICv3: 640 SPIs implemented

  • [ 0.000000] GICv3: 0 Extended SPIs implemented

  • [ 0.000000] Root IRQ handler: 0xffffffc080010080

  • [ 0.000000] GICv3: GICv3 features: 16 PPIs

  • [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x000000000c080000

  • [ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.

  • [ 0.000000] arch_timer: cp15 timer(s) running at 13.00MHz (phys).

  • [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2ff89eacb, max_idle_ns: 440795202429 ns

  • [ 0.000000] sched_clock: 56 bits at 13MHz, resolution 76ns, wraps every 4398046511101ns

  • [ 0.000067] Calibrating delay loop (skipped), value calculated using timer frequency… 26.00 BogoMIPS (lpj=130000)

  • [ 0.000075] pid_max: default: 32768 minimum: 301

  • [ 0.002055] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)

  • [ 0.002067] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)

  • [ 0.003635] cacheinfo: Unable to detect cache hierarchy for CPU 0

  • [ 0.004021] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.

  • [ 0.004124] rcu: Hierarchical SRCU implementation.

  • [ 0.004126] rcu: Max phase no-delay instances is 1000.

  • [ 0.004455] smp: Bringing up secondary CPUs …

  • [ 0.004714] Detected VIPT I-cache on CPU1

  • [ 0.004749] GICv3: CPU1: found redistributor 1 region 0:0x000000000c0a0000

  • [ 0.004778] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]

  • [ 0.005081] Detected VIPT I-cache on CPU2

  • [ 0.005102] GICv3: CPU2: found redistributor 2 region 0:0x000000000c0c0000

  • [ 0.005115] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]

  • [ 0.005383] Detected VIPT I-cache on CPU3

  • [ 0.005401] GICv3: CPU3: found redistributor 3 region 0:0x000000000c0e0000

  • [ 0.005412] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]

  • [ 0.005440] smp: Brought up 1 node, 4 CPUs

  • [ 0.005443] SMP: Total of 4 processors activated.

  • [ 0.005446] CPU features: detected: 32-bit EL0 Support

  • [ 0.005448] CPU features: detected: CRC32 instructions

  • [ 0.005476] CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching

  • [ 0.005479] CPU: All CPU(s) started at EL2

  • [ 0.005480] alternatives: applying system-wide alternatives

  • [ 0.008517] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns

  • [ 0.008532] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)

  • [ 0.009424] pinctrl core: initialized pinctrl subsystem

  • [ 0.010349] NET: Registered PF_NETLINK/PF_ROUTE protocol family

  • [ 0.010596] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations

  • [ 0.010624] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations

  • [ 0.010647] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations

  • [ 0.010966] thermal_sys: Registered thermal governor ‘fair_share’

  • [ 0.010969] thermal_sys: Registered thermal governor ‘bang_bang’

  • [ 0.010970] thermal_sys: Registered thermal governor ‘step_wise’

  • [ 0.010972] thermal_sys: Registered thermal governor ‘user_space’

  • [ 0.011001] ASID allocator initialised with 65536 entries

  • [ 0.011679] pstore: Using crash dump compression: deflate

  • [ 0.011683] pstore: Registered ramoops as persistent store backend

  • [ 0.011684] ramoops: using 0x10000@0x42ff0000, ecc: 0

  • [ 0.012888] /soc/interrupt-controller@c000000: Fixed dependency cycle(s) with /soc/interrupt-controller@c000000

  • [ 0.018421] Modules: 29600 pages in range for non-PLT usage

  • [ 0.018429] Modules: 521120 pages in range for PLT usage

  • [ 0.019359] cryptd: max_cpu_qlen set to 1000

  • [ 0.020239] SCSI subsystem initialized

  • [ 0.020783] libata version 3.00 loaded.

  • [ 0.021830] clocksource: Switched to clocksource arch_sys_counter

  • [ 0.023432] NET: Registered PF_INET protocol family

  • [ 0.023550] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)

  • [ 0.025164] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)

  • [ 0.025179] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)

  • [ 0.025187] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)

  • [ 0.025254] TCP bind hash table entries: 16384 (order: 7, 524288 bytes, linear)

  • [ 0.025602] TCP: Hash tables configured (established 16384 bind 16384)

  • [ 0.025893] MPTCP token hash table entries: 2048 (order: 4, 49152 bytes, linear)

  • [ 0.026000] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)

  • [ 0.026030] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)

  • [ 0.026205] NET: Registered PF_UNIX/PF_LOCAL protocol family

  • [ 0.026227] PCI: CLS 0 bytes, default 64

  • [ 0.026479] Unpacking initramfs…

  • [ 0.032728] workingset: timestamp_bits=46 max_order=19 bucket_order=0

  • [ 0.036101] squashfs: version 4.0 (2009/01/31) Phillip Lougher

  • [ 0.036107] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.

  • [ 0.073429] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)

  • [ 0.075157] mtk-pcie-gen3 11280000.pcie: host bridge /soc/pcie@11280000 ranges:

  • [ 0.075178] mtk-pcie-gen3 11280000.pcie: Parsing ranges property…

  • [ 0.075187] mtk-pcie-gen3 11280000.pcie: MEM 0x0020000000…0x002fffffff → 0x0020000000

  • [ 0.075292] /soc/pcie@11280000: Failed to get clk index: 0 ret: -517

  • [ 0.075300] mtk-pcie-gen3 11280000.pcie: failed to get clocks

  • [ 0.078319] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled

  • [ 0.081027] printk: console [ttyS0] disabled

  • [ 0.101348] 11002000.serial: ttyS0 at MMIO 0x11002000 (irq = 116, base_baud = 2500000) is a ST16650V2

  • [ 0.101392] printk: console [ttyS0] enabled

  • [ 0.946269] 11003000.serial: ttyS1 at MMIO 0x11003000 (irq = 117, base_baud = 1625000) is a ST16650V2

  • [ 0.956271] mtk_rng 1020f000.rng: registered RNG driver

  • [ 0.964342] loop: module loaded

  • [ 0.969120] spi-nand spi0.0: Winbond SPI NAND was found.

  • [ 0.974441] spi-nand spi0.0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64

  • [ 1.067764] Freeing initrd memory: 5060K

  • [ 1.077122] 2 fixed-partitions partitions found on MTD device spi0.0

  • [ 1.083741] Creating 2 MTD partitions on “spi0.0”:

  • [ 1.088520] 0x000000000000-0x000000200000 : “bl2”

  • [ 1.094915] 0x000000200000-0x000008000000 : “ubi”

  • [ 1.183248] ubi0: default fastmap pool size: 50

  • [ 1.187781] ubi0: default fastmap WL pool size: 25

  • [ 1.192564] ubi0: attaching mtd1

  • [ 1.858445] ubi0: scanning is finished

  • [ 1.870250] ubi0: attached mtd1 (name “ubi”, size 126 MiB)

  • [ 1.875741] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes

  • [ 1.882597] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048

  • [ 1.889363] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096

  • [ 1.896305] ubi0: good PEBs: 1008, bad PEBs: 0, corrupted PEBs: 0

  • [ 1.902380] ubi0: user volume: 2, internal volumes: 1, max. volumes count: 128

  • [ 1.909579] ubi0: max/mean erase counter: 15/4, WL threshold: 4096, image sequence number: 2100098763

  • [ 1.918775] ubi0: available PEBs: 980, total reserved PEBs: 28, PEBs reserved for bad PEB handling: 20

  • [ 1.928065] ubi0: background thread “ubi_bgt0d” started, PID 278

  • [ 2.053099] mtk_soc_eth 15100000.ethernet: generated random MAC address 65:74:68:25:64:00

  • [ 2.184740] mtk_soc_eth 15100000.ethernet eth0: mediatek frame engine at 0xffffffc085800000, irq 121

  • [ 2.194532] mtk_soc_eth 15100000.ethernet eth1: mediatek frame engine at 0xffffffc085800000, irq 121

  • [ 2.204298] i2c_dev: i2c /dev entries driver

  • [ 2.210566] mtk-wdt 1001c000.watchdog: Watchdog enabled (timeout=31 sec, nowayout=0)

  • [ 2.219208] NET: Registered PF_INET6 protocol family

  • [ 2.224790] Segment Routing with IPv6

  • [ 2.228461] In-situ OAM (IOAM) with IPv6

  • [ 2.232510] NET: Registered PF_PACKET protocol family

  • [ 2.237558] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.

  • [ 2.250604] 8021q: 802.1Q VLAN Support v1.8

  • [ 2.268199] mtk-pcie-gen3 11280000.pcie: host bridge /soc/pcie@11280000 ranges:

  • [ 2.275532] mtk-pcie-gen3 11280000.pcie: Parsing ranges property…

  • [ 2.281784] mtk-pcie-gen3 11280000.pcie: MEM 0x0020000000…0x002fffffff → 0x0020000000

  • [ 2.290266] debugfs: File ‘type’ in directory ‘phy-soc:[email protected]’ already present!

  • [ 2.298437] debugfs: File ‘efuse’ in directory ‘phy-soc:[email protected]’ already present!

  • [ 2.306689] debugfs: File ‘intr’ in directory ‘phy-soc:[email protected]’ already present!

  • [ 2.310562] mtk-msdc 11230000.mmc: Final PAD_DS_TUNE: 0x14014

  • [ 2.314854] debugfs: File ‘tx-imp’ in directory ‘phy-soc:[email protected]’ already present!

  • [ 2.321750] mmc0: new HS400 MMC card at address 0001

  • [ 2.328911] debugfs: File ‘rx-imp’ in directory ‘phy-soc:[email protected]’ already present!

  • [ 2.334688] mmcblk0: mmc0:0001 008GB0 7.28 GiB

  • [ 2.348457] mmcblk0boot0: mmc0:0001 008GB0 4.00 MiB

  • [ 2.354398] mmcblk0boot1: mmc0:0001 008GB0 4.00 MiB

  • [ 2.359607] mmcblk0rpmb: mmc0:0001 008GB0 4.00 MiB, chardev (249:0)

  • [ 2.681835] mtk-pcie-gen3 11280000.pcie: PCIe link down, current LTSSM state: detect.quiet (0x1)

  • [ 2.690636] mtk-pcie-gen3: probe of 11280000.pcie failed with error -110

  • [ 2.697710] clk: Disabling unused clocks

  • [ 2.702165] Freeing unused kernel memory: 448K

  • [ 2.706629] Run /init as init process

  • [ 2.710275] with arguments:

  • [ 2.713232] /init

  • [ 2.715490] with environment:

  • [ 2.718613] HOME=/

  • [ 2.720958] TERM=linux

  • [ 2.884785] init: Console is alive

  • [ 2.888278] init: - watchdog -

  • [ 2.895144] kmodloader: loading kernel modules from /etc/modules-boot.d/*

  • [ 5.095996] Airoha EN8811H mdio-bus:0e: MD32 firmware version: 24082302

  • [ 7.295776] Airoha EN8811H mdio-bus:0f: MD32 firmware version: 24082302

  • [ 7.310915] usbcore: registered new interface driver usbfs

  • [ 7.316458] usbcore: registered new interface driver hub

  • [ 7.321796] usbcore: registered new device driver usb

  • [ 7.327285] gpio_button_hotplug: loading out-of-tree module taints kernel.

  • [ 7.338838] xhci-mtk 11200000.usb: xHCI Host Controller

  • [ 7.344088] xhci-mtk 11200000.usb: new USB bus registered, assigned bus number 1

  • [ 7.354479] xhci-mtk 11200000.usb: hcc params 0x01403f99 hci version 0x110 quirks 0x0000000000200010

  • [ 7.363650] xhci-mtk 11200000.usb: irq 127, io mem 0x11200000

  • [ 7.369467] xhci-mtk 11200000.usb: xHCI Host Controller

  • [ 7.374691] xhci-mtk 11200000.usb: new USB bus registered, assigned bus number 2

  • [ 7.382081] xhci-mtk 11200000.usb: Host supports USB 3.2 Enhanced SuperSpeed

  • [ 7.389488] hub 1-0:1.0: USB hub found

  • [ 7.393255] hub 1-0:1.0: 2 ports detected

  • [ 7.397531] usb usb2: We don’t know the algorithms for LPM for this host, disabling LPM.

  • [ 7.405889] hub 2-0:1.0: USB hub found

  • [ 7.409648] hub 2-0:1.0: 1 port detected

  • [ 7.416472] kmodloader: done loading kernel modules from /etc/modules-boot.d/*

  • [ 7.425951] init: - preinit -

  • [ 7.534356] mtk_soc_eth 15100000.ethernet eth0: PHY [mdio-bus:0e] driver [Airoha EN8811H] (irq=63)

  • [ 7.546649] mtk_soc_eth 15100000.ethernet eth0: configuring for phy/2500base-x link mode

  • Press the [f] key and hit [enter] to enter failsafe mode

  • Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level

  • [ 7.851833] usb 1-1: new high-speed USB device number 2 using xhci-mtk

  • [ 8.181832] usb 1-2: new full-speed USB device number 3 using xhci-mtk

  • [ 8.262948] mtk_soc_eth 15100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx

  • [ 8.331838] usb 1-2: device descriptor read/64, error -71

  • [ 8.601837] usb 1-2: device descriptor read/64, error -71

  • [ 8.871832] usb 1-2: new full-speed USB device number 4 using xhci-mtk

  • [ 9.021838] usb 1-2: device descriptor read/64, error -71

  • [ 9.301844] usb 1-2: device descriptor read/64, error -71

  • [ 9.421890] usb usb1-port2: attempt power cycle

  • [ 11.171834] random: crng init done

  • [ 11.776102] procd: - early -

  • [ 11.779030] procd: - watchdog -

  • [ 12.298962] procd: - watchdog -

  • [ 12.302261] procd: - ubus -

  • [ 12.355934] procd: - init -

  • Please press Enter to activate this console.

  • [ 12.482578] kmodloader: loading kernel modules from /etc/modules.d/*

  • [ 12.495679] crypto-safexcel 10320000.crypto: EIP97:230(0,1,4,4)-HIA:270(0,5,5),PE:150/433(alg:7fcdfc00)/0/0/0

  • [ 12.508096] Loading modules backported from Linux version v6.12.61-0-gdcbeffaf66d0

  • [ 12.515696] Backport generated by backports.git v6.1.110-1-35-g410656ef

  • [ 12.663298] urngd: v1.0.2 started.

  • [ 12.842258] mt798x-wmac 18000000.wifi: HW/SW Version: 0x8a108a10, Build Time: 20240823160656a

  • [ 12.842258]

  • [ 12.859778] mt798x-wmac 18000000.wifi: WM Firmware Version: ____000000, Build Time: 20240823160721

  • [ 12.898166] mt798x-wmac 18000000.wifi: WA Firmware Version: DEV_000000, Build Time: 20240823160840

  • [ 13.003777] mt798x-wmac 18000000.wifi: registering led ‘mt76-phy0’

  • [ 13.043057] mt798x-wmac 18000000.wifi: registering led ‘mt76-phy1’

  • [ 13.119258] PPP generic driver version 2.4.2

  • [ 13.124405] NET: Registered PF_PPPOX protocol family

  • [ 13.131568] kmodloader: done loading kernel modules from /etc/modules.d/*

  • [ 16.573341] mtk_soc_eth 15100000.ethernet eth0: Link is Down

  • [ 16.695161] mtk_soc_eth 15100000.ethernet eth0: PHY [mdio-bus:0e] driver [Airoha EN8811H] (irq=63)

  • [ 16.708190] mtk_soc_eth 15100000.ethernet eth0: configuring for phy/2500base-x link mode

  • [ 16.717293] br-lan: port 1(eth0) entered blocking state

  • [ 16.722559] br-lan: port 1(eth0) entered disabled state

  • [ 16.727813] mtk_soc_eth 15100000.ethernet eth0: entered allmulticast mode

  • [ 16.734842] mtk_soc_eth 15100000.ethernet eth0: entered promiscuous mode

  • [ 16.784392] mtk_soc_eth 15100000.ethernet eth1: PHY [mdio-bus:0f] driver [Airoha EN8811H] (irq=61)

  • [ 16.794100] mtk_soc_eth 15100000.ethernet eth1: configuring for phy/2500base-x link mode

  • [ 18.241954] usb usb1-port2: unable to enumerate USB device

  • [ 18.869711] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 1Gbps/Full - flow control rx/tx

  • [ 20.333034] mtk_soc_eth 15100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx

  • [ 20.333524] br-lan: port 1(eth0) entered blocking state

  • [ 20.346679] br-lan: port 1(eth0) entered forwarding state

  • [ 27.341896] usb 2-1: new SuperSpeed USB device number 2 using xhci-mtk

  • BusyBox v1.36.1 (2025-12-17 21:08:22 UTC) built-in shell (ash)


| |.-----.-----.-----.| | | |.----.| |_ | - || _ | -| || | | || || | |_____|| |||||___||| |____| || W I R E L E S S F R E E D O M

OpenWrt 24.10.5, r29087-d9c5716d1d

=== WARNING! ===================================== There is no root password defined on this device! Use the “passwd” command to set up a new password in order to prevent unauthorized SSH logins.

root@OpenWrt:~#

  • root@OpenWrt:~#

  • root@OpenWrt:~# cat /proc/mtd

  • dev: size erasesize name

  • mtd0: 00200000 00020000 “bl2”

  • mtd1: 07e00000 00020000 “ubi”

  • root@OpenWrt:~#

  • root@OpenWrt:~# mtd unlock bl2

  • Could not open mtd device: bl2

  • Could not open mtd device: bl2

  • root@OpenWrt:~#

  • root@OpenWrt:~# mtd unlock mtd0

  • Could not open mtd device: mtd0

  • Could not open mtd device: mtd0

  • root@OpenWrt:~# mtd unlock mtd0

  • Could not open mtd device: mtd0

  • Could not open mtd device: mtd0

  • root@OpenWrt:~# mtd unlock mtd0

  • Could not open mtd device: mtd0

  • Could not open mtd device: mtd0

  • root@OpenWrt:~#

I’m on the USB.

  • D:\bananapi\24.10.5>mtk_uartboot.exe -s COM4 -p mt7986-ram-ddr4-bl2.bin -a -f openwrt-24.10.5-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 0xf40000 @ 0x40400000 …

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

  • D:\bananapi\24.10.5>

I can’t access the bootloader here; I’m stuck on a black screen. These are the correct commands, but it’s not responding. I don’t know what to do, and if I turn it off, will everything be lost?

  • D:\bananapi\24.10.5>mtk_uartboot.exe -s COM4 -p mt7986-ram-ddr4-bl2.bin -a -f openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb

  • 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 (1998MHz)

  • 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 0x8f0000 @ 0x40400000 …

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

  • D:\bananapi\24.10.5>

I can’t get past the black screen; if I’m doing something wrong, please correct me.

If you can’t follow even the simple and well explained instruction to use codeblocks, then how to resolve a complicated issue?

Independ of missing code tags again you should read error messages printed and look again in instructions if it is right what you have done. I have not seen the unlock command. Also you try to modify nand here,but your bootlog is emmc,this makes it hard to compare whats wrong.

Please only use steps written down here

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

:point_right: This only applies if I can boot OpenWrt from NAND or a working bootloader. :arrow_right: In my case, I’m not getting a working boot yet, so this method won’t work for me until we have a working console/kernel first.

But I’ve never had the correct working files, and I’ve always tried different files and methods. My problem here is that I need to load my current status:

  • :x: BL2 boots
  • :x: FIP loads
  • :x: But the kernel/OpenWrt doesn’t boot
  • :x: You can’t access an SSH shell
  • :x: That’s why you can’t run the commands in the official guide

:point_right: In other words, the official NAND installation is NOT possible until the system boots.

  • :heavy_check_mark: What I need to achieve first

  • For this guide to work, you must first achieve the following:

  • :raising_hand_man: Having OpenWrt booting in RAM (initramfs)

  • This means:

  • Connecting the UART correctly

  • Seeing the kernel output

  • Reaching the prompt: root@OpenWrt:~#

  • :pushpin: Final summary of what follows

  • :heavy_check_mark: Yes → OpenWrt has an official NAND installation guide

  • :heavy_check_mark: But → That guide only works if you can run commands on a live system

  • :heavy_check_mark: For now → you can’t, because the kernel hasn’t booted successfully

Clarification about the current state

We are not failing to “follow commands”.

The issue happens before the installation steps described in the guide.

Current status:

  • BROM: OK
  • BL2 loads correctly via mtk_uartboot
  • BL2 explicitly switches UART baudrate to 921600
  • After FIP is sent, the console remains black

This strongly suggests a UART baudrate mismatch, not a missing command or wrong procedure.

The OpenWrt installation guide assumes:

  • A visible kernel boot
  • A working shell (root@OpenWrt:~#)

In our case, the kernel may already be running, but the console output is lost after BL2 changes the baudrate.

Therefore:

  • NAND installation commands cannot be executed yet
  • This is a boot-stage visibility issue, not a failure to follow instructions

Once the kernel console is visible, we can proceed exactly as documented.

That is because mtk_uartboot is finished and you have to open putty on same port to proceed…this is normal behaviour. You saw openwrt after booting the recovery so you can either install emmc or nand with the instructions. If nand bl2 cannot ve weitten you can either use mtd_rw module or flash bl2 from uboot. Atm you still have the old bl2 which seems using fixed offset and not fip partition which openwrt expects for emmc. On nand fip is searched in ubi partition or older bl2 on fixed offset.

The instruction wants to avoid you break your device like your already is,needing to use uartboot. As both bootup chains are broken you can install both with these instructions.

Thanks for the clarification, this helps.

Yes, I understand now that after “FIP sent” mtk_uartboot is finished and UART output must be continued via a serial terminal (PuTTY) on the same port.

The black screen is therefore expected behavior, not a failure.

I can confirm that OpenWrt has already booted before when using the initramfs recovery, so the device, UART and kernel are functional.

The real issue seems to be BL2:

  • Current BL2 is older and uses fixed offset
  • OpenWrt 24.10 expects BL2 with FIP partition support (especially for eMMC)
  • NAND behavior depends on whether BL2 searches FIP in UBI or fixed offset

So the next step should be to properly install NAND (factory image) and update BL2 using either:

  • mtd_rw
  • or flashing BL2 from U-Boot

UART boot was only used for recovery, not as final installation.

If you recommend a specific BL2 version or preferred NAND flashing method for R3 Mini, please confirm.

As i said you can start with either emmc or nand install because both are broken. But you have to do it completely (bl2+fip+the other parts). I only noted that bl2 mtd part is maybe marked as readonly which you may need to solve via mtd_rw module (described in openwrt wiki) or flash bl2 in uboot (afair offset 0x0 on nand). Please use the files from openwrt firmware builder for this only. No mix of sinoviop/immortalwrt or my files for install openwrt. Also not instructions.

Flash bl2 in uboot should be like this (use openwrt file) in case mtd_rw way does not work:

usb start
ls usb 0:1
BPI-R3> mtd erase spi-nand0 0x0 0x100000
BPI-R3> load usb 0:1 $loadaddr bpi-r3_spim-nand_2024.04_bl2.img
BPI-R3> mtd write spi-nand0 $loadaddr 0x0 0x100000

Thanks for the clarification. Now it makes sense: the issue is not UARTBoot anymore, but the old BL2 on NAND using fixed offset and being read-only.

Since OpenWrt is not booting yet, the mtd_rw method cannot be used, so flashing BL2 from U-Boot at offset 0x0 on NAND is the correct next step.

I will use only the BL2 image provided by the OpenWrt firmware builder and complete the NAND install (BL2 + FIP + factory image) without mixing files or instructions.

Appreciate the confirmation.

  • root@OpenWrt:/# dd if=/tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini

  • -emmc-gpt.bin of=/dev/mmcblk0 bs=512 conv=fsync

  • c34+0 records in

  • 34+0 records out

  • root@OpenWrt:/# sync

  • root@OpenWrt:/# lsblk

  • -ash: lsblk: not found

  • root@OpenWrt:/# fw_printenv 2>/dev/null | head

  • root@OpenWrt:/# fw_printenv 2>/dev/null | head

  • root@OpenWrt:/#

  • root@OpenWrt:/#

  • root@OpenWrt:/#

  • root@OpenWrt:/#

  • root@OpenWrt:/#

  • root@OpenWrt:/#

  • root@OpenWrt:/#

  • root@OpenWrt:/# dd if=/tmp/openwrt-*-r3-mini-emmc-gpt.bin of=/dev/mmcblk0

  • dd: can’t open ‘/tmp/openwrt-*-r3-mini-emmc-gpt.bin’: No such file or directory

  • root@OpenWrt:/# echo 0 > /sys/block/mmcblk0boot0/force_ro

  • droot@OpenWrt:/# dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-preloader.bin of=

  • /dev/mmcblk0boot0

  • d if=/tmp/dd: can’t open ‘/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-preloader.bin’: No such file or directory

  • openwrroot@OpenWrt:/# dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip of

  • =/dev/mmcblk0p3

  • d if=/tmp/dd: can’t open ‘/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip’: No such file or directory

  • openwrroot@OpenWrt:/# dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb

  • of=/dev/mmcblk0p4

  • if=/tmp/opedd: can’t open ‘/tmp/openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb’: No such file or directory

  • nwrtroot@OpenWrt:/# dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.it

  • b of=/dev/mmcblk0p5

  • dd: can’t open ‘/tmp/openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb’: No such file or directory

  • root@OpenWrt:/# sync

  • root@OpenWrt:/#

  • root@OpenWrt:/#

  • root@OpenWrt:/#

  • root@OpenWrt:/# echo 0 > /sys/block/mmcblk0boot0/force_ro

  • root@OpenWrt:/#

  • root@OpenWrt:/# dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-preloader.bin of=

  • /dev/mmcblk0boot0

  • dd: can’t open ‘/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-preloader.bin’: No such file or directory

  • root@OpenWrt:/# dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip of

  • =/dev/mmcblk0p3

  • dd: can’t open ‘/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip’: No such file or directory

  • root@OpenWrt:/# dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip of

  • =/dev/mmcblk0p3

  • dd: can’t open ‘/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip’: No such file or directory

  • root@OpenWrt:/# dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb

  • of=/dev/mmcblk0p4

  • dd: can’t open ‘/tmp/openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb’: No such file or directory

  • root@OpenWrt:/# dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.it

  • b of=/dev/mmcblk0p5

  • dd: can’t open ‘/tmp/openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb’: No such file or directory

  • root@OpenWrt:/# sync

  • root@OpenWrt:/#

  • root@OpenWrt:/# cat /proc/cmdline

  • root=/dev/fit0 rootwait

  • root@OpenWrt:/# lsblk

  • -ash: lsblk: not found

  • root@OpenWrt:/# ls -l /dev/mmcblk0boot0

  • brw------- 1 root root 179, 8 Feb 23 01:58 /dev/mmcblk0boot0

  • root@OpenWrt:/# fw_printenv 2>/dev/null | head

  • root@OpenWrt:/#

  • root@OpenWrt:/#

  • root@OpenWrt:/# sysupgrade -n /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi

  • -r3-mini-squashfs-sysupgrade.itb

  • Mon Feb 23 02:45:27 UTC 2026 upgrade: Commencing upgrade. Closing all shell sessions.

  • Hangup

  • -ash: can’t set tty process group: Not a tty

  • [1]+ Hangup sysupgrade -n /tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb

  • root@OpenWrt:/# Watchdog handover: fd=3

    • watchdog -
  • Watchdog does not have CARDRESET support

  • Mon Feb 23 02:45:27 UTC 2026 upgrade: Sending TERM to remaining processes …

  • Mon Feb 23 02:45:31 UTC 2026 upgrade: Sending KILL to remaining processes …

  • [ 7316.649377] stage2 (3971): drop_caches: 3

  • Mon Feb 23 02:45:37 UTC 2026 upgrade: Switching to ramdisk…

  • Mon Feb 23 02:45:38 UTC 2026 upgrade: Performing system upgrade…

  • Mon Feb 23 02:45:38 UTC 2026 upgrade: Upgrade completed

  • Mon Feb 23 02:45:39 UTC 2026 upgrade: Rebooting system…

  • umount: can’t unmount /dev: Resource busy

  • umount: can’t unmount /tmp[ 7318.489142] reboot: Restarting system

  • : Resource busy

  • F0: 102B 0000

  • FA: 1040 0000

  • FA: 1040 0000 [0200]

  • F9: 103F 0000

  • F3: 1006 0033 [0200]

  • F3: 4001 00E0 [0200]

  • F3: 0000 0000

  • V0: 0000 0000 [0001]

  • 00: 0000 0000

  • BP: 2400 0041 [0000]

  • G0: 1190 0000

  • EC: 0000 0000 [2000]

  • T0: 0000 021F [010F]

  • Jump to BL

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

  • NOTICE: BL2: Built : 21:08:22, Dec 17 2025

  • NOTICE: WDT: [40000000] Software reset (reboot)

  • NOTICE: CPU: MT7986 (1998MHz)

  • NOTICE: EMI: Using DDR4 settings

  • NOTICE: EMI: Detected DRAM size: 2048MB

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

  • ERROR: BL2: Failed to load image id 3 (-2)


USE CODE Tags!

You should do the reboot only if writing gpt works…seems you have another filename or not put this file there before. And then you have only gpt there,no bl2 or fip,so you need to do mtkuart boot again. Basicly you can reload gpt partitions with partprobe but i’m not sure how exactly install it in openwrt.

  • OpenWrt 24.10.5, r29087-d9c5716d1d

  • === WARNING! =====================================
  • There is no root password defined on this device!
  • Use the “passwd” command to set up a new password
  • in order to prevent unauthorized SSH logins.

  • root@OpenWrt:~#
  • root@OpenWrt:~#
  • root@OpenWrt:~#
  • root@OpenWrt:~# dd if=/tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini
  • -emmc-gpt.bin of=/dev/mmcblk0
  • dd: can’t open ‘/tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-emmc-gpt.bin’: No such file or directory
  • root@OpenWrt:~#
  • root@OpenWrt:~# dd if=/tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini
  • -emmc-gpt.bin of=/dev/mmcblk0
  • 34+0 records in
  • 34+0 records out
  • root@OpenWrt:~# echo 0 > /sys/block/mmcblk0boot0/force_ro
  • root@OpenWrt:~# dd if=/tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini
  • -emmc-preloader.bin of=/dev/mmcblk0boot0
  • 392+1 records in
  • 392+1 records out
  • root@OpenWrt:~# dd if=/tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini
  • -emmc-bl31-uboot.fip of=/dev/mmcblk0p3
  • 2273+1 records in
  • 2273+1 records out
  • root@OpenWrt:~# dd if=/tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini
  • -initramfs-recovery.itb of=/dev/mmcblk0p4
  • 18304+0 records in
  • 18304+0 records out
  • root@OpenWrt:~# dd if=/tmp/openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini
  • -squashfs-sysupgrade.itb of=/dev/mmcblk0p5
  • 23040+1 records in
  • 23040+1 records out
  • root@OpenWrt:~# sync
  • root@OpenWrt:~#

Here I made sure the name is complete and correct

  • root@OpenWrt:~# cat /proc/cmdline
  • root=/dev/fit0 rootwait
  • root@OpenWrt:~# lsblk
  • -ash: lsblk: not found
  • root@OpenWrt:~# ls -l /dev/mmcblk0boot0
  • brw------- 1 root root 179, 8 Feb 23 06:06 /dev/mmcblk0boot0
  • root@OpenWrt:~# fw_printenv 2>/dev/null | head
  • boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
  • boot_emmc=run boot_production ; run boot_recovery
  • boot_first=if button reset ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
  • boot_production=led $bootled_pwr on ; run emmc_read_production && bootm $loadaddr#$bootconf ; led $bootled_pwr off
  • boot_recovery=led $bootled_rec on ; run emmc_read_recovery && bootm $loadaddr#$bootconf ; led $bootled_rec off
  • boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
  • boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
  • boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run emmc_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
  • boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run emmc_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
  • boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run emmc_write_bl2
  • root@OpenWrt:~#

run bootmenu_7

    ( ( ( OpenWrt ) ) )  [eMMC]       U-Boot 2024.10-OpenWrt-r29087-d9c5716d1d (Dec 17 2025 - 21:08:22 +0000

  1. Run default boot command.
  2. Boot system via TFTP.
  3. Boot production system from eMMC.
  4. Boot recovery system from eMMC.
  5. Load production system via TFTP then write to eMMC.
  6. Load recovery system via TFTP then write to eMMC.
  7. Load Airoha EN8811H firmware via TFTP then write to eMMC.
  8. Load BL31+U-Boot FIP via TFTP then write to eMMC.
  9. Load BL2 preloader via TFTP then write to eMMC.
  a. Reboot.
  b. Reset all settings to factory defaults.
  0. Exit

Hit any key to stop autoboot: 39 Press UP/DOWN to move, ENTER to select, ESC to quit

Looks good so far…when you have installed all files (like it looks like in your still unformatted output) you can try default menu entry “default boot command”

And if it works do the steps for nand…

1 Like

:broken_heart::pray: My Deepest Apologies

I want to take a moment to sincerely apologize. I was being foolish… I was so overwhelmed and stressed that I didn’t realize something crucial: the instructions didn’t have the full name, and I was just copying and pasting without paying attention.

Now I fully understand what you explained: the name did not match, and because of my carelessness, I caused confusion and probably wasted the time of those who tried to help me.

Thank you, truly, for your patience, guidance, and for taking the time to teach me. I deeply regret my mistake and promise to pay closer attention in the future. Thank you for helping me learn and grow, and I am truly sorry from the bottom of my heart for not doing it right from the beginning.

The eMMC works perfectly, but I’m having trouble with the NAND in the first command: mtk_uartboot.exe -s COM4 -p mt7986-ram-ddr4-bl2.bin -a -f openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-snand-bl31-uboot.fip

I’m not sure if I should use the same command I used for the eMMC to get it to boot.

This is the one that worked perfectly for me:

mtk_uartboot.exe -s COM4 -p mt7986-ram-ddr4-bl2.bin -a -f openwrt-24.10.5-mediatek-filogic-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip I don’t know what to do now.

You can bootup emmc now,you only need ramboot when both are broken and then it is same as it does not depend on emmc/nand.

Ramboot only brings you to uboot,then you have a way to load a system manually (e.g. openwrt via initramfs itb).

If you booted the emmc fip via ramboot and you got completely into openwrt without loading anything manually then only you first bootchain (bl2/fip) was broken.

There is an official option to add the 8GB of eMMC storage.

image

Please make your nand working first before changing emmc and maybe break it again

Yes, but the file I mentioned is corrupted. I’ll have to use an alternative and see if it works, but that will have to wait until tomorrow. It’s 5 AM here.

You do not need ramboot when you can bootup openwrt on emmc…just bootup this system and do the steps for nand from there…but of course you can continue “tomorrow”

But now i understand why you are in openwrt without loading the initramfs itb in uboot manually. That will not work for nand because there is no fixed offset kernel position because of ubifs. But you have emmc running which allows you to create all parts now.

Hello everyone, thank you for the previous explanations and help.

I can confirm that OpenWrt is booting correctly from eMMC, without using ramboot or manually loading the initramfs from U-Boot.

I now understand that since the system is already running from eMMC, the NAND can be prepared directly from within OpenWrt, and there is no need for a fixed kernel offset due to UBI/UBIFS.

Current status:

  • OpenWrt 24.10.5 booting from eMMC
  • NAND detected (mtd0: bl2, mtd1: ubi)
  • UBI is working correctly (ubinfo looks good, no bad blocks)

Goal:

  • Properly prepare the NAND (UBI)
  • Create the required volumes (kernel / rootfs / rootfs_data)
  • Leave the NAND ready for booting

I would appreciate guidance on the correct steps and recommended volume sizes to prepare the NAND on the R3 Mini.

Thanks in advance for your help.