diff --git a/drivers/mtd/mtd_blk.c b/drivers/mtd/mtd_blk.c
index 01f9ee0e4feaf22c9732a09d0e110ab0b27146df..8e58ea6a85fe4f7daff94213357c00b1df21b41e 100644
--- a/drivers/mtd/mtd_blk.c
+++ b/drivers/mtd/mtd_blk.c
@@ -666,6 +666,7 @@ ulong mtd_derase(struct udevice *udev, lbaint_t start,
 		return 0;
 
 	pr_debug("mtd derase %s %lx %lx\n", mtd->name, start, blkcnt);
+	len = round_up(len, mtd->erasesize);
 
 	if (blkcnt == 0)
 		return 0;