Jump to content

Banana Pi M3 Boot from EMMC


bahtiyar57

Recommended Posts

Hi 

 

I'm running into the same issue, this is the output i get from the serial 

 

<\r><\n>
U-Boot SPL 2024.01-armbian (Feb 10 2024 - 01:33:08 +0000)<\r><\n>
DRAM: 2048 MiB<\r><\n>
Trying to boot from MMC2<\r><\n>
Card did not respond to voltage select! : -110<\r><\n>
spl: mmc init failed with error: -95<\r><\n>
SPL: failed to boot from all boot devices<\r><\n>
### ERROR ### Please RESET the board ###<\r><\n>

 

I got no idea what to search for in this case, also somehow my emmc is mmcblk2 instead of the mmcblk1 that it's refered to in every source i found so far
 

Link to comment
Share on other sites

Yesterday I had same problems with my on SD Card installed Armbian. It won't boot. After a few failed attempts to boot, it did after all.

Surprisingly not from the SD Card. It booted from EMMC, where was a clean Armbian installation flashed.

After reboot it was no more possible for me to repeat this.

Link to comment
Share on other sites

Can't find that image anywhere and no matter what i try (even the banana pi supplyed ones) refuse to boot into emmc. When going into the U-Boot shell with a SD-Card plugged in i can get this env


 

=> env print
arch=arm
baudrate=115200
board=sunxi
board_name=sunxi
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr -q ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_efi_bootmgr=if fdt addr -q ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr;fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_syslinux_conf=extlinux/extlinux.conf
boot_targets=fel mmc_auto usb0 pxe dhcp
bootcmd=run distro_bootcmd
bootcmd_dhcp=devtype=dhcp; run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00010:UNDI:003000;setenv bootp_arch 0xa;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr -q ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
bootcmd_fel=if test -n ${fel_booted} && test -n ${fel_scriptaddr}; then echo '(FEL boot)'; source ${fel_scriptaddr}; fi
bootcmd_mmc0=devnum=0; run mmc_boot
bootcmd_mmc1=devnum=1; run mmc_boot
bootcmd_mmc_auto=if test ${mmc_bootdev} -eq 1; then run bootcmd_mmc1; run bootcmd_mmc0; elif test ${mmc_bootdev} -eq 0; then run bootcmd_mmc0; run bootcmd_mmc1; fi
bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
bootcmd_usb0=devnum=0; run usb_boot
bootdelay=1
bootm_size=0xa000000
console=ttyS0,115200
cpu=armv7
dfu_alt_info_ram=kernel ram 0x42000000 0x1000000;fdt ram 0x43000000 0x100000;ramdisk ram 0x43400000 0x4000000
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
ethaddr=02:01:7e:b0:bb:78
fdt_addr_r=0x43000000
fdtcontroladdr=bbf5e620
fdtfile=sun8i-a83t-bananapi-m3.dtb
fdtoverlay_addr_r=0x43300000
kernel_addr_r=0x42000000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
loadaddr=0x42000000
loadsplash= for prefix in ${boot_prefixes}; do if test -e mmc 0 ${prefix}boot.bmp; then load mmc 0 ${splashimage} ${prefix}boot.bmp; bmp d ${splashimage}; fi; done
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
mmc_bootdev=0
partitions=name=loader1,start=8k,size=32k,uuid=${uuid_gpt_loader1};name=loader2,size=984k,uuid=${uuid_gpt_loader2};name=esp,size=128M,bootable,uuid=${uuid_gpt_esp};name=system,size=-,uuid=${uuid_gpt_system};
preboot=usb start
pxefile_addr_r=0x43200000
ramdisk_addr_r=0x43400000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done; setenv devplist
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;run boot_efi_bootmgr;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootarm.efi; then echo Found EFI removable media binary efi/boot/bootarm.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
scriptaddr=0x43100000
serial#=32c004017eb0bb78
soc=sunxi
splashimage=66000000
splashpos=m,m
stderr=serial
stdin=serial,usbkbd
stdout=serial
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
uuid_gpt_esp=c12a7328-f81f-11d2-ba4b-00a0c93ec93b
uuid_gpt_system=69dad710-2ce4-4e3c-b16c-21a1d49abed3

Environment size: 4905/65532 bytes


Also i can access the emmc once booted 

@Gunjan Gupta Do you have any idea where to go from here or where to find more info on how to maybe get it booting from emmc ?

Link to comment
Share on other sites

Results of today:

I found no image that would let me boot from EMMC without the micro SD, but when i edit the armbianEnv on the SD to point to the UUID of the EMMC partion with installed os it boots from the EMMC. So my conclusion is that i need to build my own U-Boot.bin to get around the poweron issue with the emmc.

Link to comment
Share on other sites

So I figured out how to test uboot.bin's with the fel mode, but so far couldn't build my own uboot for the a83t. Also i dug around in the image and it seems like the banana pi m3 images doesn't have the uboot for the a83t (might be wrong there)

Link to comment
Share on other sites

Posted (edited)
05.05.2024 в 10:36, O to the o сказал:

I'm intending to use the banana Pi for a 3d printer and EMMC booting is the last thing holding me back.

 

Starting the OS from the SD card:

Password: 
 ____  ____  _   __  __ _____ 
| __ )|  _ \(_) |  \/  |___ / 
|  _ \| |_) | | | |\/| | |_ \ 
| |_) |  __/| | | |  | |___) |
|____/|_|   |_| |_|  |_|____/ 
                              
Welcome to Armbian 23.10 Bookworm with Linux 6.4.16

No end-user support: built from trunk & unsupported (bookworm) userspace!

System load:   22%              Up time:       0 min
Memory usage:  5% of 1.96G      IP:            192.168.100.101
CPU temp:      34�°C            Usage of /:    14% of 7.2G

 

Starting the OS with EMMC:

 ____                                  ____  _   __  __ _____ 
| __ )  __ _ _ __   __ _ _ __   __ _  |  _ \(_) |  \/  |___ / 
|  _ \ / _` | '_ \ / _` | '_ \ / _` | | |_) | | | |\/| | |_ \ 
| |_) | (_| | | | | (_| | | | | (_| | |  __/| | | |  | |___) |
|____/ \__,_|_| |_|\__,_|_| |_|\__,_| |_|   |_| |_|  |_|____/ 
                                                              

Welcome to ARMBIAN 5.87 user-built Ubuntu 18.04.2 LTS 4.19.43-ipipe-sunxi   
System load:   1.05 0.27 0.09   Up time:       0 min
Memory usage:  6 % of 2012MB    IP:            192.168.100.101
Usage of /:    15% of 7.0G   

 

I remember that I recorded the image on the SD card using "dd" and the standard procedure at the first start.
Then, on my desktop machine, I started "mc" and connected to the device via SSH.
I copied the image file to the home directory.
Then I wrote it to "/dev/mmcblk2" using the "dd" command.

 

Link to my image
Best regards

Edited by going
Add link to image
Link to comment
Share on other sites

U-Boot SPL 2022.07-armbian (Jan 30 2024 - 11:01:03 +0000)
DRAM: 2048 MiB
Trying to boot from MMC2
Card did not respond to voltage select! : -110
spl: mmc init failed with error: -95
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###
 

Thanks @going, i tried your image but it didn't work for me. Can you explain the copy process a bit more ? 

I used this command  dd if=xxx.img of=/dev/mmcblk2 bs=10M to copy it 

Link to comment
Share on other sites

47 минут назад, O to the o сказал:

Can you explain the copy process a bit more ? 

dd if=/dev/zero of=/dev/mmcblk2 bs=1M count=10; sync

dd if=YYY.img of=/dev/mmcblk2 bs=1M; sync

 

On my device, a rather old image is recorded in EMMC.
I'll check tomorrow how the new one will work.

 

One more nuance.

These sections are completely empty for me:

mmcblk2boot0 179:16   0      4M  1 disk  
mmcblk2boot1 179:24   0      4M  1 disk

 

Link to comment
Share on other sites

14 часов назад, O to the o сказал:

U-Boot SPL 2022.07-armbian (Jan 30 2024 - 11:01:03 +0000)
DRAM: 2048 MiB
Trying to boot from MMC2
Card did not respond to voltage select! : -110
spl: mmc init failed with error: -95
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

Yes, I confirm. U-boot does not support (not configured during compilation) booting from EMMC.

 

Today I will fix it for Armbian and for my image.

Wait a bit.

Link to comment
Share on other sites

vor 5 Stunden schrieb going:

Yes, I confirm. U-boot does not support (not configured during compilation) booting from EMMC.

 

Today I will fix it for Armbian and for my image.

Wait a bit.

Mind elaborating a bit what needs to be changed about the uboot to make booting from EMMC possible ? I've been poking in the dark for a few days now, learned a bit and really like to know what i'm missing :)

Link to comment
Share on other sites

22 часа назад, O to the o сказал:

Mind elaborating a bit what needs to be changed about the uboot to make booting from EMMC possible ? I've been poking in the dark for a few days now, learned a bit and really like to know what i'm missing

Trying to boot from MMC2                                                                                                          
Card did not respond to voltage select! : -110                                                                                    
spl: mmc init failed with error: -95                                                                                              
SPL: failed to boot from all boot devices
 

The SPL must supply power for the chip to work.
He doesn't seem to know where to go.

Unfortunately, I don't remember how I did it in the old u-boot. I have no records left, which means that everything was very simple.
But the code has changed and additional settings may be required for the default configuration.

 

We'll have to wait a bit while I test my changes.

Link to comment
Share on other sites

1 час назад, bahtiyar57 сказал:

it's not a good solution for me to use a pre-build image. Is there an option to make it work with any image?

Hello.
Are we talking about starting the OS booting from eMMC?
Today I can only give some recommendations in theory.
My problem is that the BPI-m3 appeared to me in 2013.

I have successfully completed and completed one project on it.

But I forgot how I did it. And I didn't keep all the old images.

Should I lay out the theoretical foundations?

Today I'm trying to figure out the new u-boot code.

And make the assembly within the framework of the Armbian assembly system so that the image can be loaded from both the SD card and the eMMC.

Link to comment
Share on other sites

30.05.2024 в 17:53, O to the o сказал:

Mind elaborating a bit what needs to be changed about the uboot to make booting from EMMC possible ? I've been poking in the dark for a few days now, learned a bit and really like to know what i'm missing

The whole problem lies in the "configure u-boot correctly" plane.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines