PINE64
[Manjaro] u-boot won't boot from eMMC with (unbootable) SD card present - Printable Version

+- PINE64 (https://forum.pine64.org)
+-- Forum: Pinebook Pro (https://forum.pine64.org/forumdisplay.php?fid=111)
+--- Forum: Linux on Pinebook Pro (https://forum.pine64.org/forumdisplay.php?fid=114)
+--- Thread: [Manjaro] u-boot won't boot from eMMC with (unbootable) SD card present (/showthread.php?tid=15730)



[Manjaro] u-boot won't boot from eMMC with (unbootable) SD card present - zackw - 01-10-2022

I'm running ManjaroARM on my PBP. The OS is installed on the eMMC storage. I also have an SD card permanently installed for extra space. Both the eMMC and the SD card have DOS-format partition tables. The SD card is not bootable; the space reserved for a bootloader (in between the MBR and the partition) is zeroed. The SPI flash is blank.

This arrangement used to work fine, but ever since the most recent update to u-boot from Manjaro's official repositories, the laptop won't boot with the SD card present.  This is a complete console log:

Code:
U-Boot 2021.10-2 (Dec 25 2021 - 16:31:17 +0000) Manjaro Linux ARM

SoC: Rockchip rk3399
Reset cause: POR
Model: Pine64 Pinebook Pro
DRAM:  3.9 GiB
PMIC:  RK808
MMC:   mmc@fe31000: 3, mmc@fe320000: 1, mmc@fe330000: 0
Loading Environment from SPIFlash... SF: Detected gd25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   vidconsole
Err:   vidconsole
Model: Pine64 Pinebook Pro
Net:   No ethernet found
starting USB...
Bus usb@fe3a0000: USB OHCI 1.0
Bus usb@fe3e0000: USB OHCI 1.0
scanning bus usb@fe3a0000 for devices... 2 USB Device(s) found
scanning bus usb@fe3e0000 for devices... 3 USB Device(s) found
        scanning usb for storage devices: 0
Hit any key to stop autoboot: 0

Device 0: unknown device
switch to partition #0, OK
mmc1 is current device
Scanning mmc 1:1
libfdt fdt_check_header: FDT_ERR_BADMAGIC
Card did not respond to voltage select! : -110
Scanning disk mmc@fe310000.blk
Disk mmc@fe310000.blk not ready
Scanning disk mmc@fe320000.blk
Scanning disk mmc@fe330000.blk
Found 6 disks
No EFI system partition
BootOrder not defined
EFI boot manager: unknown image

followed by a whole bunch of spew about also being unable to boot off the network (as expected) and a => prompt.

If the SD card is not present, everything is the same up till the "Hit any key to stop autoboot" prompt, after which I get

Code:
Device 0: unknown device
Card did not respond to voltage select! : -110
switch to partition #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
204 bytes read in 14 ms (13.7 KiB/s)
1:      Manjaro ARM
Retrieving file: /initramfs-linux.img
7005870 bytes read in 320 ms (20.9 MiB/s)
Retrieving file: /Image
... etc, etc ...

and the machine boots normally.

So what this looks like to me is that u-boot is no longer falling back to booting from the internal eMMC if the SD card is unbootable. How can I persuade it to start doing that again? It's really annoying to have to pop the SD card out every time I start up the laptop and then put it back after it's booted.


RE: [Manjaro] u-boot won't boot from eMMC with (unbootable) SD card present - vanessadonald - 08-21-2023

Hello,
To resolve this, you can try the following steps:

1. Access U-Boot environment: Interrupt the boot process by pressing any key when you see the "Hit any key to stop autoboot" prompt. This should drop you into the U-Boot command prompt.

2. Check boot targets: Run the following command to display the current boot targets and their order:


Code:
excel
=> printenv boot_targets

Ensure that the eMMC is listed as one of the boot targets and that it has the appropriate priority. If it's not present or has a lower priority than the SD card, you'll need to modify the boot order.

3. Modify boot order: Use the setenv command to modify the boot order and prioritize the eMMC. For example, if the eMMC is assigned to mmc0 and the SD card is assigned to mmc1, you can set the boot order with the following command:


Code:
excel
=> setenv boot_targets "mmc0 mmc1"

This sets the boot order to prioritize the eMMC (mmc0) over the SD card (mmc1).

4. Save changes: Save the modified boot order to the U-Boot environment by running the following command:


Code:
excel
=> saveenv

This will save the changes and update the U-Boot environment variables.

5. Reboot: Exit the U-Boot command prompt and reboot the system to test the changes. You should now observe whether the system boots from the eMMC when the SD card is present but unbootable.