diff options
author | Dirk Behme <dirk.behme@gmail.com> | 2008-01-16 13:26:59 (GMT) |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2008-05-28 16:06:27 (GMT) |
commit | 9723bbb46abb7b2ca24eead5114a3faa58060c20 (patch) | |
tree | bc22147363ba01d3b3e5696f54530518c4f0e25d | |
parent | 5922db6c0948506be91e0de44e7a6863a18a417f (diff) | |
download | u-boot-9723bbb46abb7b2ca24eead5114a3faa58060c20.tar.xz |
nand: Correct NAND erase percentage output
For NAND erase sizes smaller than one NAND erase block, erase
percentage output becomes grater than 100% e.g.
-- cut --
> nand info
Device 0: NAND 64MiB 1,8V 8-bit, sector size 16 KiB
> nand erase 0x100000 0x2000
NAND erase: device 0 offset 0x100000, size 0x2000
Erasing at 0x100000 -- 200% complete.
OK
>
-- cut --
Correct this and give user a warning that more is erased than specified:
-- cut --
> nand erase 0x100000 0x2000
NAND erase: device 0 offset 0x100000, size 0x2000
Warning: Erase size 0x00002000 smaller than one erase block 0x00004000
Erasing 0x00004000 instead
Erasing at 0x100000 -- 100% complete.
OK
>
-- cut --
Signed-off-by: Dirk Behme <dirk.behme@gmail.com>
-rw-r--r-- | drivers/mtd/nand/nand_util.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/mtd/nand/nand_util.c b/drivers/mtd/nand/nand_util.c index 6c5624a..c82f77b 100644 --- a/drivers/mtd/nand/nand_util.c +++ b/drivers/mtd/nand/nand_util.c @@ -153,6 +153,13 @@ int nand_erase_opts(nand_info_t *meminfo, const nand_erase_options_t *opts) priv_nand->bbt = NULL; } + if (erase_length < meminfo->erasesize) { + printf("Warning: Erase size 0x%08x smaller than one " \ + "erase block 0x%08x\n",erase_length, meminfo->erasesize); + printf(" Erasing 0x%08x instead\n", meminfo->erasesize); + erase_length = meminfo->erasesize; + } + for (; erase.addr < opts->offset + erase_length; erase.addr += meminfo->erasesize) { |