diff options
author | Tomas Paukrt <tomaspaukrt@email.cz> | 2024-09-02 20:49:17 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2024-09-16 16:45:55 -0600 |
commit | 6c0943ff54ec27bf3c277767c2a9e1fb458e57a0 (patch) | |
tree | 596a11bea788836926fb1aedef36d60aca726441 /cmd/mmc.c | |
parent | 39aa94a5c372f9daaae3f4eb11c26cf900de2094 (diff) |
cmd: mmc: Allow using partition name in mmc erase command
The mmc erase command currently requires blk# and cnt parameters
which can be obtained using the part start and part size commands
if the entire partition needs to be erased.
Simplify the use of the mmc erase command by allowing the partition
name to be specified directly.
Signed-off-by: Tomas Paukrt <tomaspaukrt@email.cz>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Diffstat (limited to 'cmd/mmc.c')
-rw-r--r-- | cmd/mmc.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/cmd/mmc.c b/cmd/mmc.c index 9a841c25d3d..c0c23ee24b6 100644 --- a/cmd/mmc.c +++ b/cmd/mmc.c @@ -473,18 +473,26 @@ static int do_mmc_erase(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { struct mmc *mmc; + struct disk_partition info; u32 blk, cnt, n; - if (argc != 3) + if (argc < 2 || argc > 3) return CMD_RET_USAGE; - blk = hextoul(argv[1], NULL); - cnt = hextoul(argv[2], NULL); - mmc = init_mmc_device(curr_device, false); if (!mmc) return CMD_RET_FAILURE; + if (argc == 3) { + blk = hextoul(argv[1], NULL); + cnt = hextoul(argv[2], NULL); + } else if (part_get_info_by_name(mmc_get_blk_desc(mmc), argv[1], &info) >= 0) { + blk = info.start; + cnt = info.size; + } else { + return CMD_RET_FAILURE; + } + printf("MMC erase: dev # %d, block # %d, count %d ... ", curr_device, blk, cnt); @@ -1290,6 +1298,7 @@ U_BOOT_CMD( "mmc swrite addr blk#\n" #endif "mmc erase blk# cnt\n" + "mmc erase partname\n" "mmc rescan [mode]\n" "mmc part - lists available partition on current mmc device\n" "mmc dev [dev] [part] [mode] - show or set current mmc device [partition] and set mode\n" |