summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/mmc.c17
-rw-r--r--doc/usage/cmd/mmc.rst6
2 files changed, 18 insertions, 5 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"
diff --git a/doc/usage/cmd/mmc.rst b/doc/usage/cmd/mmc.rst
index 5a64400eeae..55391fda24c 100644
--- a/doc/usage/cmd/mmc.rst
+++ b/doc/usage/cmd/mmc.rst
@@ -15,6 +15,7 @@ Synopsis
mmc read addr blk# cnt
mmc write addr blk# cnt
mmc erase blk# cnt
+ mmc erase partname
mmc rescan [mode]
mmc part
mmc dev [dev] [part] [mode]
@@ -44,12 +45,15 @@ The 'mmc write' command writes raw data to MMC device from memory address with b
cnt
block count
-The 'mmc erase' command erases *cnt* blocks on the MMC device starting at block *blk#*.
+The 'mmc erase' command erases *cnt* blocks on the MMC device starting at block *blk#* or
+the entire partition specified by *partname*.
blk#
start block offset
cnt
block count
+ partname
+ partition name
The 'mmc rescan' command scans the available MMC device.