Hello,
In the iMX6 reference manual it is stated that the ROM boot code only supports eMMC 4.4. Is eMMC 4.5 fully supported after booting Linux 3.0.35 on iMX6? I'm especially interested in the High Priority Interrupt that is in the 4.41 standard. Is this supported if I use 3.0.35 on iMX6?
Best Regards,
Emil
Solved! Go to Solution.
Hello,emil,
Let me summarize the above :
For using eMMC card with eMMC4.4.1 and 4.5, If you use R13.4.1 BSP, they will have to modify source code in ~/myandroid/kernel_imx/drivers/mmc/core/mmc.c like the following:
Change:
if (card->ext_csd.rev > 5) {
printk(KERN_ERR "%s: unrecognised EXT_CSD revision %d\n",
mmc_hostname(card->host), card->ext_csd.rev);
err = -EINVAL;
goto out;
}
TO:
if (card->ext_csd.rev > 6) {
printk(KERN_ERR "%s: unrecognised EXT_CSD revision %d\n",
mmc_hostname(card->host), card->ext_csd.rev);
err = -EINVAL;
goto out;
}
But if you use linux L3.0.35 BSP, No modification need to be done.
Regards,
Weidong
Hello,
From your explaination it seems like your have a fix for using 4.5 cards in 4.4 mode. This means that 3.0.35 does not support any 4.5 or 4.41 features like High Priority Interrupt? Is that correct?
BR,
Emil
Hello,emil,
If you use R13.4.1 android4.0 BSP, you should do modification in mmc.c file :
change if(card->ext_csd.rev > 5) to if(card->ext_csd.rev > 6).
If you use linux bsp (L3.0.35) , Don't need to do any modifications.
Actually, this modificaiton is to make a eMMC card with mmc4.5 work at eMMC4.4 mode. So your card with mmc4.5 can be used in linux system and android system.
Regards,
Weidong
Ok. Just to make it crystal clear for me: So there is no way to be able to use MMC 4.5 features on 3.0.35? No support for HPI then?
(i use Linux 3.0.35 and not Android btw)
BR,
Emil
Hello,emil,
Let me summarize the above :
For using eMMC card with eMMC4.4.1 and 4.5, If you use R13.4.1 BSP, they will have to modify source code in ~/myandroid/kernel_imx/drivers/mmc/core/mmc.c like the following:
Change:
if (card->ext_csd.rev > 5) {
printk(KERN_ERR "%s: unrecognised EXT_CSD revision %d\n",
mmc_hostname(card->host), card->ext_csd.rev);
err = -EINVAL;
goto out;
}
TO:
if (card->ext_csd.rev > 6) {
printk(KERN_ERR "%s: unrecognised EXT_CSD revision %d\n",
mmc_hostname(card->host), card->ext_csd.rev);
err = -EINVAL;
goto out;
}
But if you use linux L3.0.35 BSP, No modification need to be done.
Regards,
Weidong
Hello,emil,
In mmc core drivers of L3.0.35, eMMC card or iNAND FLASH with eMMC 4.4.1 and eMMC4.5 can be supported, you can see it from linux/driver/mmc/core/mmc.c file :
/*workaround: support emmc 4.5 cards to work at emmc 4.4 mode */
if(card->ext_csd.rev > 6) {
printk(KERN_ERR"%s: unrecognised EXT_CSD revision %d\n", mmc_hostname(card->host),card->ext_csd.rev);
err= -EINVAL;
goto out;
}
Regards,
Weidong