hi,everyone,
I met a problem about the EMMC:
When the unit bootup from the EMMC,it would report this error:
mmc0: error -84 whilst initialising MMC card
Follow the source code,I found when the emmc tried to send this command:
#define MMC_ALL_SEND_CID 2 /* bcr R2 */
it would met error.
when we tried to init the EMMC,we need tried to Fetch CID from card,but it couldnot fetch it:
/*
* Fetch CID from card.
*/
if (mmc_host_is_spi(host))
err = mmc_send_cid(host, cid);
else{
err = mmc_all_send_cid(host, cid); ---> process this funtion,it would report error -84
printk("%s,[%d],err =%d \n",__func__,__LINE__,err);
}
if (err)
goto err;
Do you know why ? and how to solve this problem? Thanks very much in advance.
BTW,
1.My BSP version is :android 4.0.4 (android-13.5.0-ga.01);
2.The kernel version is:Linux 3.0.35;
3.the CPU is:CPU identified as i.MX6SoloLite, silicon rev 1.2
3.Here is the mmcinfo:
MX6Sl Z970B U-Boot > mmc dev 1
mmc1(part 0) is current device
MX6Sl Z970B U-Boot > mmcinfo
Device: FSL_USDHC
Manufacturer ID: 11
OEM: 100
Name: 008GE
Tran Speed: 25000000
Rd Block Len: 512
MMC version 4.0
Clock: 52000000
High Capacity: Yes
Capacity: 7818182656 Bytes
Bus Width: 4-bit DDR
Current Partition for boot: Not bootable
MX6Sl Z970B U-Boot >
4.For more informations,please refer to the attachment file.
Original Attachment has been moved to: emmc_84_error.txt.zip
Error -84 is happens when we try to fetch CID from EMMC
For that reason you should replace the boot parameters to
root=/dev/mmcblk2p2
instead of
root=PARTUUID=${uuid}
How do you solve that problem? Thanks very much in advance.
your EMMC is 4bit width?
No,it was 8 Bit width.
are you config the emmc like this?
.always_present = 1,
.keep_power_at_suspend = 1,
.support_8bit = 1,
.delay_line = 0,
.cd_type = ESDHC_CD_PERMANENT,
Sorry for reply later.
Here is my sd's config:
static const struct esdhc_platform_data mx6_evk_sd2_data __initconst = {
.cd_gpio = MX6SL_INVALID_GPIO,
.wp_gpio = MX6SL_INVALID_GPIO,
.support_8bit = 1,
.support_18v = 0,
.keep_power_at_suspend = 1,
.delay_line = 0,
.always_present = 1,
.cd_type = ESDHC_CD_PERMANENT,
.platform_pad_change = mx6sl_evk_plt_sd_pad_change,
};