Other Parts Discussed in Thread: DRA752, CSD
Hello,
For our products we use AM5728 and Silicon Motion eMMC chips. Recently we run into an issue where some of the devices fails to boot from the eMMC chips.
This devices, used to boot fine before and after a few power cycles, they just stop booting.
With further investigation, we found out that the SoC is not able to load the first stage bootloader and can't proceed with the booting.
I have attached an SD card and tried to boot from it, and was able to boot from the SD card. I boot from SD card and stay at U-boot, and tried different commands to see how on board eMMC chip resonds. Below are my findings.
U-Boot# mmc list
OMAP SD/MMC: 0 (SD)
OMAP SD/MMC: 1 (eMMC)
U-Boot# mmc dev 1
mmc_read_data: timedout waiting for status!
omap_hsmmc_send_cmd: timedout waiting on cmd inhibit to clear
U-Boot# ext4ls mmc 1:3
mmc_read_data: timedout waiting for status!
omap_hsmmc_send_cmd: timedout waiting on cmd inhibit to clear
** No partition table - mmc 1 **
Tried Re-partitioning of the eMMC chip:
Device:1
U-Boot# setenv uuid_gpt_disk df335b83-b69b-4731-aa6d-8f161c8dea02;
U-Boot# setenv uuid_gpt_spl ba00fed3-bf1e-4e58-96c2-ca5488e60861;
U-Boot# setenv uuid_gpt_uboot ba00fed3-bf1e-4e58-96c2-ca5488e60862;
U-Boot# setenv uuid_gpt_boot ba00fed3-bf1e-4e58-96c2-ca5488e60863;
U-Boot# setenv boot_size '16'
U-Boot# setenv boot_size_hex '0x10'
U-Boot# setenv rootfs_size @rootfs_size@;
U-Boot# setenv overlays_size '512'
U-Boot# setenv spl_part "name=spl,start=128KiB,uuid=${uuid_gpt_spl},size=128KiB";
U-Boot# setenv uboot_part "name=uboot,start=384KiB,uuid=${uuid_gpt_uboot},size=768KiB";
U-Boot# setenv boot_part "name=boot,start=2MiB,uuid=${uuid_gpt_boot},size=${boot_size}MiB";
U-Boot# setenv partitions "uuid_disk=${uuid_gpt_disk};${spl_part};${uboot_part};${boot_part}";
U-Boot# gpt write mmc 1 ${partitions};
mmc_read_data: timedout waiting for status!
omap_hsmmc_send_cmd: timedout waiting on cmd inhibit to clear
do_gpt: mmc dev 1 NOT available
Device:2
U-Boot# setenv uuid_gpt_disk df335b83-b69b-4731-aa6d-8f161c8dea02;
U-Boot# setenv uuid_gpt_spl ba00fed3-bf1e-4e58-96c2-ca5488e60861;
U-Boot# setenv uuid_gpt_uboot ba00fed3-bf1e-4e58-96c2-ca5488e60862;
U-Boot# setenv uuid_gpt_boot ba00fed3-bf1e-4e58-96c2-ca5488e60863;
U-Boot# setenv boot_size '16'
U-Boot# setenv boot_size_hex '0x10'
U-Boot# setenv rootfs_size @rootfs_size@;
U-Boot# setenv overlays_size '512'
U-Boot# setenv spl_part "name=spl,start=128KiB,uuid=${uuid_gpt_spl},size=128KiB";
U-Boot# setenv uboot_part "name=uboot,start=384KiB,uuid=${uuid_gpt_uboot},size=768KiB";
U-Boot# setenv boot_part "name=boot,start=2MiB,uuid=${uuid_gpt_boot},size=${boot_size}MiB";
U-Boot# setenv partitions "uuid_disk=${uuid_gpt_disk};${spl_part};${uboot_part};${boot_part}";
U-Boot# gpt write mmc 1 ${partitions};
Writing GPT: omap_hsmmc_send_cmd: timedout waiting on cmd inhibit to clear
** Can't write to device 1 **
** Can't write to device 1 **
error!
On some of the boards we also see below errors at Uboot when I stay in U-boot using SD card boot (Device 1 is the onboard eMMC chip and partition 3 and 4 are ext4 based):
U-Boot# ext4ls mmc 1:3
** Bad device mmc 1 **
U-Boot# ext4ls mmc 1:4
** Bad device mmc 1 **
________________________________________________________________________________________________________________________________
Then, I booted my system through the SD card and checked the kernel logs, if the kernel was able to initialize the eMMC chip, and I found below logs:
[ 4.925068] mmc1: error -110 whilst initialising MMC card
[ 4.956095] omap_hsmmc 480d1000.mmc: card claims to support voltages below defined range
We are not able to understand the root cause of this issue, since the board used to boot and work fine.
I would really appreciate a response soon.
Thanks,
Divyeshkumar M