diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c index 632ddae7a2..4e28c9d7a4 100644 --- a/common/cmd_mmc.c +++ b/common/cmd_mmc.c @@ -106,7 +106,11 @@ static void print_mmcinfo(struct mmc *mmc) print_size(((u64)mmc->hc_wp_grp_size) << 9, "\n"); puts("User Capacity: "); - print_size(mmc->capacity_user, usr_enh ? " ENH\n" : "\n"); + print_size(mmc->capacity_user, usr_enh ? " ENH" : ""); + if (mmc->wr_rel_set & EXT_CSD_WR_DATA_REL_USR) + puts(" WRREL\n"); + else + putc('\n'); if (usr_enh) { puts("User Enhanced Start: "); print_size(mmc->enh_user_start, "\n"); @@ -124,7 +128,11 @@ static void print_mmcinfo(struct mmc *mmc) if (mmc->capacity_gp[i]) { printf("GP%i Capacity: ", i+1); print_size(mmc->capacity_gp[i], - is_enh ? " ENH\n" : "\n"); + is_enh ? " ENH" : ""); + if (mmc->wr_rel_set & EXT_CSD_WR_DATA_REL_GP(i)) + puts(" WRREL\n"); + else + putc('\n'); } } } diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 6fa5435000..19ac4c482f 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -1306,6 +1306,8 @@ static int mmc_startup(struct mmc *mmc) mmc->hc_wp_grp_size = 1024 * ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] * ext_csd[EXT_CSD_HC_WP_GRP_SIZE]; + + mmc->wr_rel_set = ext_csd[EXT_CSD_WR_REL_SET]; } err = mmc_set_capacity(mmc, mmc->part_num); diff --git a/include/mmc.h b/include/mmc.h index 8d41234e20..09101e2c87 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -318,6 +318,7 @@ struct mmc { ushort rca; u8 part_support; u8 part_attr; + u8 wr_rel_set; char part_config; char part_num; uint tran_speed;