Banana Pi R2 + Bootloader

Hi @ all, i’m new in the world of banana pi. I bought a Banana Pi R2

After starting with SD Card i flashed openwrt to eMMC after the instruction from OpenWRT

Now i have the problem that the PI starts from eMMC, but it starts no U-Boot

[BLDR] jump to 0x81E00000 [BLDR] <0x81E00000>=0xEA00000F [BLDR] <0x81E00004>=0xE59FF014

There is no console or nothing.

I tried to write the SD Card image to SD Card. But the Banana Pi boots only from eMMC

Is there anything, what i can do?

How can i force to boot from SD Card and not from eMMC ?

Thank you in advice


How do you see start is from emmc? What you see is only bootrom. I guess you miss preloader in boot0 block or partition config is not 0x48

Hi Frank, thank you for your answer and tipps

I saw the debug usb output

Load u-boot from eMMC...
[PLFM] Init Boot Device: OK(0)

[PART] blksz: 512B
[PART] [0x0000000000000000-0x000000000003FFFF] "PRELOADER" (512 blocks)
[PART] [0x0000000000000000-0x000000000003FFFF] "MBR" (512 blocks)
[PART] [0x0000000000040000-0x00000000000BFFFF] "UBOOT" (1024 blocks)
[PART] [0x00000000000C0000-0x00000000000FFFFF] "CONFIG" (512 blocks)
[PART] [0x0000000000100000-0x000000000013FFFF] "FACTORY" (512 blocks)
[PART] [0x0000000000140000-0x000000000213FFFF] "BOOTIMG" (65536 blocks)
[PART] [0x0000000002140000-0x000000000413FFFF] "RECOVERY" (65536 blocks)
[PART] [0x0000000004140000-0x000000004413FFFF] "ROOTFS" (2097152 blocks)
[PART] [0x0000000044140000-0x000001FFC413FFFF] "USER" (-4194304 blocks)
[platform_vusb_on] PASS
[TOOL] PMIC not dectect usb cable!
[TOOL] <UART> listen  ended, receive size:0!
[TOOL] <UART> wait sync time 150ms->5ms
[TOOL] <UART> receieved data: ()

If i follow the instruction of the links then R2 will boot from SD Card ?

Best regards Joerg

newer r2 have a boot switch (above sdcard) which tries the sd before if on position 1 and emmc first in position 0…then the other device.

it looks like emmc is loaded first, right…try bootswitch in other position. for uboot-issue on emmc, i guess image of openwrt is broken…which openwrt-version do you use?

Hi I cannot change the boot switch. I have got no console, where I can type any command :cry:

Best regards Joerg

bootswitch is a hardware-switch above the sdcard-slot if you have revision v1.1 or above…i have only 1.0

Hi Frank, great > I see a promt on my Banana pi. I burned the following image to my SD CARD > [SD Image]

Now the Banana Pi boots from SD Card to OpenWRT

I flashed the EMMC Image (same site) to eMMC Flash ( Point 6.3)

Now, the Banana Pi boot from eMMC.

But now new problem. > it is only tmpfs Filesystem. The changes were not stored in eMMC.

Do you have there also a new tipp for me ?

Thank you in advice and best regards Joerg

This problem is discussed multiple times in this forum. Imho only some special images store settings. Most are ramfs only. But as i do not use openwrt i cannot help here…

Hi, ok: i’ll search

I’m happy, that the board boot to U-BOOT Loader :slight_smile:

What Operating System can you recommend for Banana Pi R2?

I’ll setup a intranet router with multiple tagged VLAN networks

hank you very much and Best regards Joerg

i use my debian-image (buster) for my router with self-compiled kernel (currently 5.4.x) from my repo

OK, thanks I compile openwrt 19.07.4 for Banana pi r2 currently. I ll share my experience with you.

Afaik no recent openwrt supports internal wifi/hdmi

Hi Frank, i compiled OPENWRT 19.7.4 for Banana Pi R2 after this instruction

Everything goes well. Problem is the last step.

mtd write /tmp/bpi_bananapi-r2-kernel.bin kernel mtd write /tmp/root.squashfs rootfs

No Errors. After reboot and i got folling error

dev_num = 0 mmc0 is current device dev_num = 0

MMC read: dev # 0, block # 4096, count 24576 … 24576 blocks read: OK bootm flag=0, states=70f Wrong Image Format for bootm command ERROR: can’t get kernel image! BPI-R2>

I saw, that i have correct a file uEnv.txt. But how can i change this file in EMMC ?

Thanks in advice Best regards Joerg

I guess openwrt there uses mtd partitions (defined in dts of uboot and for kernel in cmdline). You write kernel with mtd command…

After kernel load fails you were dropped to uboot console where you can try different things. At least show environment (where bootmenu is defined) with “printenv”. In these you can look whats called in order and how kernel gets loaded…i guess something like load kerneldata from mtd (maybe using mmc read with block offset of mtd partition) into memory and then call this memoryaddress with bootm. Maybe you can boot from sdcard and show mtd partitions with the mtd command you’ve used for writing

Hi, i have done some experiments with OPENWRT 19.07.05

The instruction on OPENWRT Site is not correct. After creating the openWRT Image after this instruction you have to write the image file openwrt-mediatek-mt7623-bpi_bananapi-r2-squashfs-img.gz after extraction on a SD Card. Now you can boot from this card and you und you have a option, that you can copy the image to eMMC from uBoot.

This is very good.

OPENWRT 19.07. is running very good. VLAN Tagging is working.

Now i have the problem, that i cannot install new packages. OPENWRT say, that it is a incompatible architecture by installing keepalived and kmod-macvlan

Best regards Joerg

Take a look in your /etc/opkg.conf see here

For bpi r2 you need armhf

I wish to have OpenWRT on R2 work out of the box without re-compiling kernel…Have no idea when that become true…

Joerg wrote it does work basicly, only the problem with installing packages…i don’t know if changing the /etc/opkg.conf fixes this…

Assumeing /dev/sdx is your sd card, is “write the image file on a sd card” means gzip -d -c openwrt-mediatek-mt7623-bpi_bananapi-r2-squashfs-img.gz | sudo dd out=/dev/sdx?

Hi, sounds under Linux good. I extract the file with 7zip under windows and burned the extracted file to SDCard with Win32DiskImager