BPI-R4 cannot boot from SD anymore (System halt!) – SD worked before, eMMC

Hello Banana Pi community,

I’m facing a very confusing boot issue with one specific Banana Pi BPI-R4 (MT7988) and I’m posting here because I cannot find any explanation or reference online.

I’ll describe facts only, with UART logs and switch positions.


:wrench: Hardware / context

  • Board: Banana Pi BPI-R4 (2.5GE)
  • SoC: MT7988
  • UART console working (115200 8N1)
  • Power supply OK
  • Same SD card works on 2 other BPI-R4 boards
  • I successfully installed OpenWrt 24.10.5 on:

So the SD card and image are 100% known-good.


:test_tube: Switch positions & behavior (important)

:small_blue_diamond: SD card mode – switches 1 1

With SD card inserted:

UART output:

F0: 102B 0000
FA: 1042 0000
FA: 1042 0000 [0200]
F9: 1041 0000
F3: 1001 0000 [0200]
F3: 1001 0000
F6: 380E 5800
F5: 4801 0000
00: 1005 0000
FA: 1042 0000
FA: 1042 0000 [0200]
F9: 1041 0000
F3: 1001 0000 [0200]
F3: 1001 0000
F6: 380E 5800
01: 102A 0001
02: 1005 0000
BP: 0200 00C0 [0001]
EC: 0000 0000 [3000]
MK: 0000 0000 [0000]
T0: 0000 0112 [0101]
System halt!

:point_right: BootROM stops with System halt! :point_right: SD is not booted at all

:warning: Important: this same board DID boot from SD successfully in the past.


:small_blue_diamond: SPI-NAND mode – switches 0 1

UART output:

F0: 102B 0000
FA: 1042 0000
FA: 1042 0000 [0200]
F9: 0000 0000
V0: 0000 0000 [0001]
00: 0000 0000
BP: 0600 0041 [0000]
G0: 1190 0000
EC: 0000 0000 [1000]
MK: 0000 0000 [0000]
T0: 0000 01A0 [0101]
Jump to BL

NOTICE:  BL2: v2.9(release)
NOTICE:  CPU: MT7988
NOTICE:  SPI_NAND Detected ID 0xef
NOTICE:  size 134217728
ERROR:   BL2: Failed to load image id 3 (-2)

:point_right: NAND is detected, BL2 runs :point_right: But firmware image is missing / invalid


:small_blue_diamond: eMMC mode – switches 1 0

I get the full U-Boot boot menu:

*** U-Boot Boot Menu ***

1. Startup system (Default)
2. Upgrade firmware
3. Upgrade ATF BL2
4. Upgrade ATF FIP
5. Upgrade ATF BL31 only
6. Upgrade bootloader only
7. Upgrade partition table
8. Upgrade single image
9. Load image
a. Start Web failsafe
0. U-Boot console

If I select 1. Startup system, the board boots factory OpenWrt 21.x from eMMC and works perfectly.

:point_right: So:

  • CPU OK
  • DRAM OK
  • eMMC OK
  • U-Boot OK (at least partially)

:exclamation: The real problem

  • SD boot worked on this board before
  • Now, SD boot always fails at BootROM level (System halt!)
  • Same SD card boots perfectly on other BPI-R4 boards
  • NAND and eMMC modes still work
  • Web failsafe refuses all OpenWrt images (“Firmware integrity verification failed”)

I suspect:

  • corrupted SPI-NOR boot metadata
  • or broken SD boot path priority in BootROM / SPI
  • or something SD-related disabled after flashing NAND/eMMC

But I cannot find:

  • any official explanation
  • any way to re-enable SD boot
  • any reference saying SD can be permanently disabled

:question: My questions to the community

  1. Can SPI-NOR corruption prevent SD boot entirely on BPI-R4?
  2. Is there a documented way to fully reset SPI-NOR / boot metadata?
  3. Can installing OpenWrt to NAND/eMMC break SD boot permanently on MT7988?
  4. Has anyone seen System halt! only on SD mode, while eMMC still works?
  5. Is mtkclient (BROM USB) the only real recovery path in this case?

I’ve searched everywhere and found no clear answer, so any insight from Banana Pi or MediaTek experts would be greatly appreciated.

Thanks in advance :pray:

  1. Can SPI-NOR corruption prevent SD boot entirely on BPI-R4? Reply: it never affect the SD boot on BPI-R4.
  2. Is there a documented way to fully reset SPI-NOR / boot metadata? Reply: you may try to replace the another High Speed SD card, flash the image into SD card, after SD boot, restore the Nor and nand flash. please refer to : Getting Started BPI-R4 | BananaPi Docs
  3. Can installing OpenWrt to NAND/eMMC break SD boot permanently on MT7988? Reply: It’s imposible.
  4. Has anyone seen System halt! only on SD mode, while eMMC still works? Reply: the message tell that the silicon bootrom code can’t find one valid image from SD or emmc, you may re-flash them.
  5. Is mtkclient (BROM USB) the only real recovery path in this case? Reply: we never try it.