summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Santa Cruz <Diego.SantaCruz@spinetix.com>2014-12-23 10:50:33 +0100
committerPantelis Antoniou <pantelis.antoniou@konsulko.com>2015-01-19 17:41:51 +0200
commit9e41a00b572f415bbcc3d8f6fb1c6c541293655b (patch)
treeca0ef0e7d9bd351656c9e7ab90cbe5392208ad3c
parent189f963ac8e80d808c03387b866d4c9a779981ff (diff)
downloadu-boot-imx-9e41a00b572f415bbcc3d8f6fb1c6c541293655b.zip
u-boot-imx-9e41a00b572f415bbcc3d8f6fb1c6c541293655b.tar.gz
u-boot-imx-9e41a00b572f415bbcc3d8f6fb1c6c541293655b.tar.bz2
mmc: extend mmcinfo output to show partition write reliability settings
This extends the mmcinfo hardware partition info output to show partitions with write reliability enabled with the "WRREL" string. If the partition does not have write reliability enabled the "WRREL" string is omitted; this is analogous to the ehhanced attribute. Example output: Device: OMAP SD/MMC Manufacturer ID: fe OEM: 14e Name: MMC16 Tran Speed: 52000000 Rd Block Len: 512 MMC version 4.41 High Capacity: Yes Capacity: 13.8 GiB Bus Width: 4-bit Erase Group Size: 8 MiB HC WP Group Size: 16 MiB User Capacity: 13.8 GiB ENH WRREL User Enhanced Start: 0 Bytes User Enhanced Size: 512 MiB Boot Capacity: 16 MiB ENH RPMB Capacity: 128 KiB ENH GP1 Capacity: 64 MiB ENH WRREL GP2 Capacity: 64 MiB ENH WRREL Signed-off-by: Diego Santa Cruz <Diego.SantaCruz@spinetix.com>
-rw-r--r--common/cmd_mmc.c12
-rw-r--r--drivers/mmc/mmc.c2
-rw-r--r--include/mmc.h1
3 files changed, 13 insertions, 2 deletions
diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
index 632ddae..4e28c9d 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 6fa5435..19ac4c4 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 8d41234..09101e2 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;