[BPI-R3 Mini] Boot from NAND fails

ImmortalWrt uses the exactly same GPT partition layout as OpenWrt. FYI openwrt/target/linux/mediatek/image/filogic.mk at v23.05.3 · openwrt/openwrt · GitHub

You can run mmc part to print the partition table, then write the firmware to correspond part. See the example provided by @frank-w (thank you).

emmc-bl31-uboot.fip -> fip
initramfs-recovery.itb -> recovery
squashfs-sysupgrade.itb -> production

I can see bl2 failed to load fip. How did you flash the fip?

Then fip should be flashed at block 0x3400,right? I though openwrt uses ubi dor fip,but maybe only for nand/nor

now I’m trying to record eMMC by analogy

block 0x3400

That’s correct. FYI openwrt/package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch at efa71c532e4778433263626bfff1a40e48f6bdb4 · openwrt/openwrt · GitHub

1 Like

I just downloaded it and recorded it sequentially BL2 and FIP

You miss gpt layout when partition is not found

Newer atf (after i created the emmc write section) use search for fip partition instead of fixed offset to get start of fip

Maybe it is enough if you flash the emmc gpt image (3rd in image above) to offset 0x0 of emmc

1 Like

Thanks to you, I have downloaded fip <3 now the next stage :smiley: my kernel is not loading (I wrote ImmortalWRT)

I think I figured it out… I forgot about the instructions

Yesterday I managed to download ImmortalWRT (fork of OpenWRT) 1-3) I downloaded Gpt, bl2, fip from a flash drive 4) And downloaded inittamfs-recovery via tftp 5) Next, I updated sysupgrade via Luci

It remains to update additional packages today. For some reason, they did not want to update yesterday (“opkg update” does not work, error 6 writes)

You can use the Openwrt SNAPSHOT firmware selector version also. It’s working with just a small fix. It took me a few hours to understand why default images not working and self compiled without any problems. You just have to add the missing airoha-en8811h-firmware packages and “REQUEST BUILD” as shown in the picture.

If not added you will get the PHY failure:

mtk_soc_eth 15100000.ethernet eth0: validation of 2500base-x with support 00000000,00000000,000062e8 and advertisement 00000000,00000000,000062c0 failed: -EINVAL
...
Unable to handle kernel access to user memory outside uaccess routines at virtual address
1 Like

It’s strange that the airoha-en8811h-firmware package is missing because kmod-phy-airoha-en8811h is selected, and that depends on airoha-en8811h-firmware. The problem is probably that in this way it doesn’t end up in the initramfs (=recovery) but only in the production (=squashfs+overlay) image… However, that will not change even if you include airoha-en8811h-firmware in the Firmware Selector…

I ran into the same issue today. but still, I can boot from emmc. will read your thread carefully.