Hi Haijun, On Nov 5, 2013, at 8:23 AM, Haijun Zhang wrote:
> 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 send. 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.zh...@freescale.com> > --- > common/cmd_mmc.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c > index 67a94a7..15cecb7 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", > + (cnt >= n > 0) ? n : 0, argv[1], > + (cnt >= n > 0) ? "OK" : "ERROR"); > + return (cnt >= n > 0) ? 0 : 1; > + } > + I don't know what you think the test (cnt >= n > 0) does, but I bet it's not what you expect. Are you trying to test: (cnt >= n & n > 0) ? > printf("%d blocks %s: %s\n", > n, argv[1], (n == cnt) ? "OK" : "ERROR"); > return (n == cnt) ? 0 : 1; > -- > 1.8.4 > > Regards -- Pantelis _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot