
Some eMMC require this setting to work properly. Tested on: - Toshiba THGBM2G8D8FBAIB (the one giving the problem) - Toshiba THGBM4G4D1HBAR - Micron MTFC4GMVEA - Hynix H26M64002BNR - SanDisk SDIN5E1-32G
Signed-off-by: Davide Bonfanti davide.bonfanti@bticino.it --- drivers/mmc/mmc.c | 3 ++- include/mmc.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 5ffd8c5..cf66811 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -530,7 +530,8 @@ static int mmc_send_op_cond(struct mmc *mmc) cmd.cmdarg = (mmc_host_is_spi(mmc) ? 0 : (mmc->voltages & (cmd.response[0] & OCR_VOLTAGE_MASK)) | - (cmd.response[0] & OCR_ACCESS_MODE)); + (cmd.response[0] & OCR_ACCESS_MODE)) | + OCR_ACCESS_SECTOR_MODE;
if (mmc->host_caps & MMC_MODE_HC) cmd.cmdarg |= OCR_HCS; diff --git a/include/mmc.h b/include/mmc.h index a13e2bd..f1314d8 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -108,6 +108,7 @@ #define OCR_HCS 0x40000000 #define OCR_VOLTAGE_MASK 0x007FFF80 #define OCR_ACCESS_MODE 0x60000000 +#define OCR_ACCESS_SECTOR_MODE (1 << 30)
#define SECURE_ERASE 0x80000000