[U-Boot] [PATCH 4/7 V3] mmc: Update the handling of returned erase block
Haijun Zhang
haijun.zhang at freescale.com
Tue Dec 10 06:39:17 CET 2013
If the block rang was not algined, We tried to algined the range,
then erase the block. So the block range erased should be less or
equal to the block range sent. If error occured during erase procedure
part of them will be erased. And use should resend the block rang to
continue erase the reset of them.
Error number and zero number mean erase operation was failed.
Signed-off-by: Haijun Zhang <haijun.zhang at freescale.com>
---
changes for V3:
- no changes
common/cmd_mmc.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
index 67a94a7..c124df0 100644
--- a/common/cmd_mmc.c
+++ b/common/cmd_mmc.c
@@ -397,6 +397,13 @@ static int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
BUG();
}
+ if (state == MMC_ERASE) {
+ printf("%d blocks %s: %s\n",
+ ((n <= cnt) && (n > 0)) ? n : 0, argv[1],
+ ((n <= cnt) && (n > 0)) ? "OK" : "ERROR");
+ return ((n <= cnt) && (n > 0)) ? 0 : 1;
+ }
+
printf("%d blocks %s: %s\n",
n, argv[1], (n == cnt) ? "OK" : "ERROR");
return (n == cnt) ? 0 : 1;
--
1.8.4.1
More information about the U-Boot
mailing list