summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorVaradarajan Narayanan <[email protected]>2025-04-01 15:39:58 +0530
committerTom Rini <[email protected]>2025-04-10 20:55:53 -0600
commit6a5177a58cd481792a652bc7b5c34ed5e76381e0 (patch)
tree630361fb618814d4183e8f8699ff524bc53c1269 /cmd
parent157119d69a8f5ce2f93d85eefd2d53d85d6806b4 (diff)
dm: blk: Add 'erase' generic block device commands
Add support for doing 'erase' using the generic block commands framework. Signed-off-by: Varadarajan Narayanan <[email protected]>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/blk_common.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/cmd/blk_common.c b/cmd/blk_common.c
index 4c05a4e0610..56529702a47 100644
--- a/cmd/blk_common.c
+++ b/cmd/blk_common.c
@@ -107,6 +107,23 @@ int blk_common_cmd(int argc, char *const argv[], enum uclass_id uclass_id,
printf("%ld blocks written: %s\n", n,
n == cnt ? "OK" : "ERROR");
return n == cnt ? CMD_RET_SUCCESS : CMD_RET_FAILURE;
+ } else if (strcmp(argv[1], "erase") == 0) {
+ lbaint_t blk = hextoul(argv[2], NULL);
+ ulong cnt = hextoul(argv[3], NULL);
+ struct blk_desc *desc;
+ ulong n;
+
+ printf("\n%s erase: device %d block # "LBAFU", count %lu ... ",
+ if_name, *cur_devnump, blk, cnt);
+
+ if (blk_get_desc(uclass_id, *cur_devnump, &desc))
+ return CMD_RET_FAILURE;
+
+ n = blk_derase(desc, blk, cnt);
+
+ printf("%ld blocks erased: %s\n", n,
+ n == cnt ? "OK" : "ERROR");
+ return n == cnt ? CMD_RET_SUCCESS : CMD_RET_FAILURE;
} else {
return CMD_RET_USAGE;
}