diff options
author | Baruch Siach <baruch@tkos.co.il> | 2010-10-12 10:23:55 +0200 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2010-10-16 22:10:30 +0300 |
commit | 5ee3a1905e4ea852c936f92bc9b15b98032285ca (patch) | |
tree | faf9946cb53440319f9db2f29ac3d504c78f9913 | |
parent | 955d48312d7b5cf053340d66709e3cb9a07cfbd6 (diff) |
nanddump: always check the first erase block
Check the first block even when start_addr is not eraseblock aligned.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
-rw-r--r-- | nanddump.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -283,7 +283,7 @@ int main(int argc, char * const argv[]) struct mtd_oob_buf oob = {0, 16, oobbuf}; mtd_info_t meminfo; char pretty_buf[PRETTY_BUF_LEN]; - int oobinfochanged = 0 ; + int oobinfochanged = 0, firstblock = 1; struct nand_oobinfo old_oobinfo; struct mtd_ecc_stats stat1, stat2; bool eccstats = false; @@ -399,8 +399,10 @@ int main(int argc, char * const argv[]) // new eraseblock , check for bad block if (noskipbad) { badblock = 0; - } else if (blockstart != (ofs & (~meminfo.erasesize + 1))) { + } else if (blockstart != (ofs & (~meminfo.erasesize + 1)) || + firstblock) { blockstart = ofs & (~meminfo.erasesize + 1); + firstblock = 0; if ((badblock = ioctl(fd, MEMGETBADBLOCK, &blockstart)) < 0) { perror("ioctl(MEMGETBADBLOCK)"); goto closeall; |