SD/mmc0 not accessible if booting from emmc

I’m observing a very strange behaviour:

  • when booting from the SD card (mmc0), u-boot is able to scan/list both the SD-card (mmc0) and the emmc (mmc1):
=> mmc dev 0
switch to partitions #0, OK
mmc0 is current device
=> mmc info
Device: FSL_SDHC
Manufacturer ID: 41
OEM: 3432
Name: ASTCBus Speed: 50000000
Mode: SD High Speed (50MHz)
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 7.4 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
=> mmc dev 1
switch to partitions #0, OK
mmc1(part 0) is current device
=> mmc info
Device: FSL_SDHC
Manufacturer ID: 45
OEM: 100
Name: DG406 
Bus Speed: 50000000
Mode: MMC High Speed (52MHz)
Rd Block Len: 512
MMC version 5.1
High Capacity: Yes
Capacity: 59.2 GiB
Bus Width: 4-bit
Erase Group Size: 512 KiB
HC WP Group Size: 8 MiB
User Capacity: 59.2 GiB WRREL
Boot Capacity: 4 MiB ENH
RPMB Capacity: 4 MiB ENH
Boot area 0 is not write protected
Boot area 1 is not write protected

However, when changing the DIP switch to boot from emmc, suddenly u-boot can no longer access the SD card in mmc0:

=> mmc info
Device: FSL_SDHC
Manufacturer ID: 45
OEM: 100
Name: DG406 
Bus Speed: 50000000
Mode: MMC High Speed (52MHz)
Rd Block Len: 512
MMC version 5.1
High Capacity: Yes
Capacity: 59.2 GiB
Bus Width: 4-bit
Erase Group Size: 512 KiB
HC WP Group Size: 8 MiB
User Capacity: 59.2 GiB WRREL
Boot Capacity: 4 MiB ENH
RPMB Capacity: 4 MiB ENH
Boot area 0 is not write protected
Boot area 1 is not write protected
=> mmc dev 0
MMC: no card present

I am using the same u-boot version on both the SD card and eMMC (from lx2160acex7_2000_700_3200_8_5_2-f57e117.img.xz). Also, the same SD card is used (and remains inserted) between both of the boots. The card was not even removed, just the jumper changed.

This makes it impossible to boot u-boot from eMMC and then start a debian installer image as explained in Documentation/debian-11.md at bsp · SolidRun/Documentation · GitHub

1 Like

I think you’d be able to boot from USB if you have a USB card-reader.
My wild guess is that the SD card slot is shared with eMMC and that normally the CPU can switch between the two using a GPIO-pin.
However, if the DIP-switch is hardware-forcing the chip-select to eMMC, then it would likely be impossible to read from the SD-card.
-Still, this is a wild guess and I might be wrong.
If you have a card-reader, try the USB-boot option (U-Boot’s default scripts only allow for USB0, but I think you can easily extend that to USB1, USB2, …)