Hi, Recently our custom i.mx6Q board wanna using eMMC 5.0 instead eMMC 4.4
and I already know that i.mx6 can't support eMMC 5.0 with HS400 mode, from this post:
but I wonder can i.mx6 operate eMMC 5.0 under SDR or DDR mode?
eMMC 4.4 and eMMC 5.0 pins are almost the same, except for one pin for *Write Protection* , so I left the pin NC.
and after using MFGtools passing kernel and initrd to i.mx6, the linux kernel can't recognize the entire eMMC 5.0 chip, no /dev/mmcblk0 exist.
could some one give me some hint? thanks.
已解决! 转到解答。
After contact FAE support.
He suggest me change check value of card->ext_csd.rev, change 6 to 7.
now eMMC 5.0 can work as an eMMC 4.4.
attached file is the patch of what I done.
Hi Warren Jan
We are facing a similar issue in our custom board with iMX6 and eMMC(Part No:MTFC4GMDEA-4M IT).When we try to read the boot partition table (through CMD17),we receive the same partition table missing error.
Is your issue resolved now. Can you please let us know which version of u-boot are you using.
Thanks,
Uma.
Hi Uma and Warren Jan,
We have also starting having intermittent issues with an iMX28 and a Micron v5 eMMC (MTFC4GACAJCN-4M IT). The version of u-boot we are using (2009) seems to not have any issues, but Linux then fails to read the partition table from flash.
After debugging the mxs-mmc driver, we have found out that the Data CRC error status bit is being set, and that by checking that bit (in mxs_mmc_cmd_error()) we can signal an error to the block device driver, which will then retry using single block reads. But the next attempt to set up a DMA read hangs the kernel.
Have either of you found any work around for this issue? We are looking at switching to an alternative flash manufacturer and, if debugging the drivers doesn't go anywhere soon, maybe trying to soft reset the entire CPU.
Thanks,
Andy
Hi everyone
i used Micron emmc V5 ( MTFC8GAKAJCN-4M IT). i meet some issue.
I changed the mmc.c "if (card->ext_csd.rev > 7)". and i can found the emmc devices .
when i write uboot/kernel/rootfs image into emmc ,and start boot from emmc , Sometime work fine.
But Sometime fails , The log show " can't read emmc partition " .
my kernel based on Android 5.0.2 (uboot 2014.04, kernel 3.10.53)
the log like this.
U-Boot 2014.04-08648-g9d7bf9b-dirty (Dec 29 2016 - 15:13:19)
CPU: Freescale i.MX6Q rev1.5 at 792 MHz
CPU: Temperature 25 C, calibration data: 0x59550269
Reset cause: POR
Board: MX6-SabreSD
I2C: ready
DRAM: 2 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
*** Warning - bad CRC, using default environment
No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x768)
In: serial
Out: serial
Err: serial
Setup 610A
WFound PFUZE100 deviceid=10,revid=21
check_and_clean: reg 0, flag_set 0
Fastboot: Normal
flash target is MMC:2
** Can't read partition table on 2:0 **
Bad partition index:1 for partition:boot
** Can't read partition table on 2:0 **
Bad partition index:2 for partition:recovery
** Can't read partition table on 2:0 **
Bad partition index:5 for partition:system
Anyone could give me the Suggestion . Tks.
Hi, Warren:
Your log show you are not stuck in the Linux kernel, you have this issue while still in U-Boot stage.
But I won't suggest you check your U-Boot code, because you said sometimes it will success enter your system. that means your U-Boot is OK; I guess.
Since both your Linux kernel and U-Boot are OK; I'll suggest you check your physical connection between i.mx SOC and eMMC, maybe eMMC power-up sequence need check, too.
If my boss ask me for workaround like this case, I might adding if statement to reboot for such a eMMC failure and hope next boot it will get recovered.
Wally
Hi everyone, I have the same problem too. I can fix the "card->ext_csd.rev, change 6 to 7" and compile to a working normal uImage to run from SD card boot, but I need my target board to be booted from eMMC, the problem is I can not compile to a new MFGTools uImage to program my uboot/uImage to eMMC. When I use ltib to compile for the MFGTools, (./ltib --profile config/platform/imx/updater.profile --preconfig config/platform/imx/imx6q_updater.cf --continue --batch), it will fail and stop at u-boot (common/lcd.c => undefined reference to `panel_info'); but I indeed can use ltib to generate my normal uImage and uBoot.bin, only fail for MFGTool. So I do not know what's the problem.
I would suggest you open a new post, your problem is not getting linux kernel support eMMC 5.0
so you should open a post for ltib build uboot failed - "common/lcd.c => undefined reference to `panel_info'"
by the way, it seems you may turn on some CONFIG and it require a undefined variable which name is "panel_info", you should check
your uboot/common/lcd.c
Hi Wally,
Do we need to modify the u-boot-imx any more? The u-boot-imx version I am using is 2015.04
And do we need to add the MMC VERSION 5 to the code below?
u-boot-imx-2015.04/drivers/mmc/mmc.c - mmc_startup()
if (mmc->version == MMC_VERSION_UNKNOWN) {
int version = (cmd.response[0] >> 26) & 0xf;switch (version) {
case 0:
mmc->version = MMC_VERSION_1_2;
break;
case 1:
mmc->version = MMC_VERSION_1_4;
break;
case 2:
mmc->version = MMC_VERSION_2_2;
break;
case 3:
mmc->version = MMC_VERSION_3;
break;
case 4:
mmc->version = MMC_VERSION_4;
break;
default:
mmc->version = MMC_VERSION_1_2;
break;
}
}
Unfortunately the i.MX6 Q processor supports only eMMC4.4 and lower so there is no much information on how feasible it would be to have an eMMC 5.0 working and functionality cannot be guaranteed.
That being said, the i.MX6Q does support eMMC4.4 Double Data Rate (DDR) as its part of that standard. More information on this mode can be found on section 67.5.3.2.2 of the i.MX6Q Reference Manual (link below)
http://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf