According spec, high capacity mmc should be calculated by sector number multiply by sector size.
Signed-off-by: Lei Wen <lei...@marvell.com> --- drivers/mmc/mmc.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index ea398a5..bb97171 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -441,6 +441,11 @@ int mmc_change_freq(struct mmc *mmc) if (!ext_csd[185]) return 0; + if (!IS_SD(mmc) && mmc->high_capacity) { + mmc->capacity = ext_csd[212] | (ext_csd[213] << 8) + | (ext_csd[214] << 16) | (ext_csd[215] << 24); + mmc->capacity *= mmc->read_bl_len; + } /* High Speed is set, there are two types: 52MHz and 26MHz */ if (cardtype & MMC_HS_52MHZ) mmc->card_caps |= MMC_MODE_HS_52MHz | MMC_MODE_HS; -- 1.7.0.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot