当我移植三星的s5p6818系统时,出现以下错误。关键字是
CRC ERROR CMD.25
mmcblk0: response CRC error sending r/w cmd command, card status 0x900.
我分析了
linux/kernel/kernel-3.4.39/ After drivers/mmc/host/dw_mmc.c
if (status & DW_MCI_DATA_ERROR_FLAGS) {
if (status & SDMMC_INT_DTO) {
data->error = -ETIMEDOUT;
} else if (status & SDMMC_INT_DCRC) {
data->error = -EILSEQ;
printk("CRC ERROR CMD.%d\n", host->mrq->cmd->opcode);
/* Retry write, jhkim */
if (host->mrq && host->mrq->cmd && (
host->mrq->cmd->opcode == MMC_WRITE_BLOCK ||
host->mrq->cmd->opcode == MMC_WRITE_MULTIPLE_BLOCK)
)
host->mrq->cmd->error = -EILSEQ;
发现emmc的时间有问题,所以我改变了
linux/kernel/kernel-3.4.39/arch/arm/plat-s5p6818/drone/device.c