Hi Wolfgang, How about merge this patch? :-)
Best regards, Lei On Mon, Sep 6, 2010 at 10:11 PM, Lei Wen <adrian.w...@gmail.com> wrote: > Hi Reinhard , > > On Mon, Sep 6, 2010 at 10:07 PM, Reinhard Meyer > <u-b...@emk-elektronik.de> wrote: >> Dear Lei Wen, >>> 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; >> >> Sorry to kick in again... >> >> a) this calculation is already done in line 717, and certainly does not >> belong >> in a function called "mmc_change_freq". >> >> b) the current Top-Of-Tree code already calculates the capacity correctly: >> >> 32GB SDHC Card: >> >> Device: mci >> Manufacturer ID: 3 >> OEM: 5344 >> Name: SD32G >> Tran Speed: 25000000 >> Rd Block Len: 512 >> SD version 2.0 >> High Capacity: Yes >> Capacity: 31914983424 >> Bus Width: 4-bit > > Yes, for sd card, the calculation method is right. > But for mmc with high capacity, the calculation is wrong. You could > try a mmc card with high capacity, like emmc card. >> >> c) is that now an incremental patch to the one you sent previously? > It is a separate one. :-) > > Best regards, > Lei > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot