This adds the erase group size and high-capacity WP group size to
mmcinfo's output. The erase group size is necessary to properly align
erase requests on eMMC. The high-capacity WP group size is necessary
to properly align partitions on eMMC.

Signed-off-by: Diego Santa Cruz <diego.santac...@spinetix.com>
---
 common/cmd_mmc.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
index aa5ba0e..7b7167c 100644
--- a/common/cmd_mmc.c
+++ b/common/cmd_mmc.c
@@ -94,9 +94,16 @@ static void print_mmcinfo(struct mmc *mmc)
 
        printf("Bus Width: %d-bit\n", mmc->bus_width);
 
+       puts("Erase Group Size: ");
+       print_size(((u64)mmc->erase_grp_size) << 9, "\n");
+
        if (!IS_SD(mmc) && (mmc->version >= MMC_VERSION_4_41)) {
                bool has_enh = (mmc->part_support & ENHNCD_SUPPORT) != 0;
                bool usr_enh = has_enh && (mmc->part_attr & EXT_CSD_ENH_USR);
+
+               puts("HC WP Group Size: ");
+               print_size(((u64)mmc->hc_wp_grp_size) << 9, "\n");
+
                puts("User Capacity: ");
                print_size(mmc->capacity_user, usr_enh ? " ENH\n" : "\n");
                if (usr_enh) {
@@ -105,10 +112,13 @@ static void print_mmcinfo(struct mmc *mmc)
                        puts("User Enhanced Size: ");
                        print_size(mmc->enh_user_size, "\n");
                }
+
                puts("Boot Capacity: ");
                print_size(mmc->capacity_boot, has_enh ? " ENH\n" : "\n");
+
                puts("RPMB Capacity: ");
                print_size(mmc->capacity_rpmb, has_enh ? " ENH\n" : "\n");
+
                for (i = 0; i < ARRAY_SIZE(mmc->capacity_gp); i++) {
                        bool is_enh = has_enh &&
                                (mmc->part_attr & EXT_CSD_ENH_GP(i));
-- 
1.7.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to