Skip to content
Snippets Groups Projects
Commit 9e41a00b authored by Diego Santa Cruz's avatar Diego Santa Cruz Committed by Pantelis Antoniou
Browse files

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: default avatarDiego Santa Cruz <Diego.SantaCruz@spinetix.com>
parent 189f963a
No related branches found
No related tags found
No related merge requests found
...@@ -106,7 +106,11 @@ static void print_mmcinfo(struct mmc *mmc) ...@@ -106,7 +106,11 @@ static void print_mmcinfo(struct mmc *mmc)
print_size(((u64)mmc->hc_wp_grp_size) << 9, "\n"); print_size(((u64)mmc->hc_wp_grp_size) << 9, "\n");
puts("User Capacity: "); 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) { if (usr_enh) {
puts("User Enhanced Start: "); puts("User Enhanced Start: ");
print_size(mmc->enh_user_start, "\n"); print_size(mmc->enh_user_start, "\n");
...@@ -124,7 +128,11 @@ static void print_mmcinfo(struct mmc *mmc) ...@@ -124,7 +128,11 @@ static void print_mmcinfo(struct mmc *mmc)
if (mmc->capacity_gp[i]) { if (mmc->capacity_gp[i]) {
printf("GP%i Capacity: ", i+1); printf("GP%i Capacity: ", i+1);
print_size(mmc->capacity_gp[i], 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');
} }
} }
} }
......
...@@ -1306,6 +1306,8 @@ static int mmc_startup(struct mmc *mmc) ...@@ -1306,6 +1306,8 @@ static int mmc_startup(struct mmc *mmc)
mmc->hc_wp_grp_size = 1024 mmc->hc_wp_grp_size = 1024
* ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] * ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE]
* ext_csd[EXT_CSD_HC_WP_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); err = mmc_set_capacity(mmc, mmc->part_num);
......
...@@ -318,6 +318,7 @@ struct mmc { ...@@ -318,6 +318,7 @@ struct mmc {
ushort rca; ushort rca;
u8 part_support; u8 part_support;
u8 part_attr; u8 part_attr;
u8 wr_rel_set;
char part_config; char part_config;
char part_num; char part_num;
uint tran_speed; uint tran_speed;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment