Hi Markus, Looks good to me.
> On Nov 18, 2014, at 16:11 , Markus Niebel <list-09_u-b...@tqsc.de> wrote: > > From: Markus Niebel <markus.nie...@tq-group.com> > > if the card claims to be high capacity and the card > is partitioned the capacity shall still be read from > ext_csd SEC_COUNT even if the resulting capacity is > smaller than 2 GiB > > Signed-off-by: Markus Niebel <markus.nie...@tq-group.com> > --- > drivers/mmc/mmc.c | 15 +++++++++++++++ > include/mmc.h | 3 +++ > 2 files changed, 18 insertions(+) > > diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c > index 44a4feb..24b0989 100644 > --- a/drivers/mmc/mmc.c > +++ b/drivers/mmc/mmc.c > @@ -1022,6 +1022,21 @@ static int mmc_startup(struct mmc *mmc) > mmc->erase_grp_size = > ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] * > MMC_MAX_BLOCK_LEN * 1024; > + /* > + * if high capacity and partition setting completed > + * SEC_COUNT is valid even if it is smaller than 2 GiB > + * JEDEC Standard JESD84-B45, 6.2.4 > + */ > + if (mmc->high_capacity && > + (ext_csd[EXT_CSD_PARTITION_SETTING] & > + EXT_CSD_PARTITION_SETTING_COMPLETED)) { > + capacity = (ext_csd[EXT_CSD_SEC_CNT]) | > + (ext_csd[EXT_CSD_SEC_CNT + 1] << 8) | > + (ext_csd[EXT_CSD_SEC_CNT + 2] << 16) | > + (ext_csd[EXT_CSD_SEC_CNT + 3] << 24); > + capacity *= MMC_MAX_BLOCK_LEN; > + mmc->capacity_user = capacity; > + } > } else { > /* Calculate the group size from the csd value. */ > int erase_gsz, erase_gmul; > diff --git a/include/mmc.h b/include/mmc.h > index d74a190..cb91565 100644 > --- a/include/mmc.h > +++ b/include/mmc.h > @@ -147,6 +147,7 @@ > * EXT_CSD fields > */ > #define EXT_CSD_GP_SIZE_MULT 143 /* R/W */ > +#define EXT_CSD_PARTITION_SETTING 155 /* R/W */ > #define EXT_CSD_PARTITIONS_ATTRIBUTE 156 /* R/W */ > #define EXT_CSD_PARTITIONING_SUPPORT 160 /* RO */ > #define EXT_CSD_RST_N_FUNCTION 162 /* R/W */ > @@ -197,6 +198,8 @@ > #define EXT_CSD_BOOT_BUS_WIDTH_RESET(x) (x << 2) > #define EXT_CSD_BOOT_BUS_WIDTH_WIDTH(x) (x) > > +#define EXT_CSD_PARTITION_SETTING_COMPLETED (1 << 0) > + > #define R1_ILLEGAL_COMMAND (1 << 22) > #define R1_APP_CMD (1 << 5) > > -- > 2.1.1 > Thanks, applied. — Pantelis _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot