System halt! BPI-R3-Mini

Following this blog: Getting Started with BPI-R3 MINI - Banana Pi Wiki

I did flashed NAND FW version. And now boot-loader is showing below.

System halt!

image

Is the nand defined as boot-device (switches)? This messages comes when the selected bootdevice does not contain the brom header (boot_nand or boot_emmc). Can you boot the other device (emmc) to check content of nand (first bytes)? Have you unpacked the image and wrote the right bl2 (there is a img and a bin)

I used BPI-R3MINI-OPENWRT-V21.02.3 github repo, to build the OS. I tried TFTP method and upload was very slow so was getting timed-out. Then tried to flash based on this link.

You can only boot again from emmc and try flashing nand again…but only if you do not get an timeout…but it should be possible to load the files to usb and load from it to flash

I do not have a r3mini so i cannot test this.

I tried your suggestion of checking FW start bytes. And FW from their gDrive links has below

I modified the same in my OpenWRT build but didn’t work

Not changing the built image…check it on the nand.

Or just copy the image on usb stick,boot from emmc and flash the image from usb to nand (uncompress first)

It’s certainly strong, I’ve been in this situation too, do you need more help?

this is an eMMC overwrite, this is how I restored my board, after removing eMMC and NAND

#start to mtk_uartboot

usb start
ls usb 0:3 1/
mmc dev 0

#gpt
load usb 0:3 $loadaddr 1/emmc-gpt.bin
mmc erase 0x0 0x400 ; mmc write $loadaddr 0x0 0x400

#en8811h (don't work)
load usb 0:3 $loadaddr 1/EthMD32.dm.bin
mmc partconf 0 1 2 2 ; mmc erase 0x0 0x20 ; mmc write $loadaddr 0x0 0x20 ; mmc partconf 0 1 1 0
load usb 0:3 $loadaddr 1/EthMD32.DSP.bin
mmc partconf 0 1 2 2 ; mmc erase 0x20 0x100 ; mmc write $loadaddr 0x0 0x100 ; mmc partconf 0 1 1 0

#bl2
load usb 0:3 $loadaddr 1/emmc-preloader.bin
mmc partconf 0 1 1 1 ; mmc erase 0x0 0x400 ; mmc write $loadaddr 0x0 0x400 ; mmc partconf 0 1 1 0

#fip
load usb 0:3 $loadaddr 1/emmc-bl31-uboot.fip
mmc erase 0x3400 0x2000 ; mmc write $loadaddr 0x3400 0x2000
//mmc erase 0x2000 0x800 (I do not know why this is, but it was in the source code)

#tftp...

mmc dev 0 0

load usb 0:3 $loadaddr 1/openwrt-mediatek-filogic-bananapi_bpi-r3-mini-initramfs-recovery.itb
mmc erase 0x6000 0xFFFF ; mmc write $loadaddr 0x6000 0xFFFF

load usb 0:3 $loadaddr 1/openwrt-48e6fc4d8433-mediatek-filogic-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
mmc erase 0x20000 0x33FFF ; mmc write $loadaddr 0x20000 0x33FFF