This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

eMMC v5.1

Other Parts Discussed in Thread: AM3352, CSD

Our device is using an AM3352 with the Linux imaged based on the files in ti-processor-sdk-linux-am335x-evm-01.00.00.00-Linux-x86-Install.bin.

We need to replace the eMMC chip and the kernel fails to recognize the new chip.

I've traced it down to the fact the new eMMC chip uses MMC v5.1, so it reports a EXT_CSD_REV of 8.

The code in drivers/mmc/core/mmc.c, function mmc_read_ext_csd, has a block that fails if EXT_CSD_REV is greater than 7.

if (card->ext_csd.rev > 7) {
  pr_err("%s: unrecognised EXT_CSD revision %d\n",
    mmc_hostname(card->host), card->ext_csd.rev);
  err = -EINVAL;
  goto out;
}

Later version of the SDK have this block removed (as well as other changes).

I don't want to move to a newer version of the SDK / kernel if at all possible.

Can I just delete this block without any other changes to support the newer eMMC chip, do I need to port in a newer version of the entire MMC driver, or do I have to move to a newer kernel / SDK?

Thanks,

  Peter Steinberg