summaryrefslogtreecommitdiff
path: root/nanddump.c
diff options
context:
space:
mode:
authorBaruch Siach <baruch@tkos.co.il>2010-10-12 10:23:55 +0200
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2010-10-16 22:10:30 +0300
commit5ee3a1905e4ea852c936f92bc9b15b98032285ca (patch)
treefaf9946cb53440319f9db2f29ac3d504c78f9913 /nanddump.c
parent955d48312d7b5cf053340d66709e3cb9a07cfbd6 (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>
Diffstat (limited to 'nanddump.c')
-rw-r--r--nanddump.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/nanddump.c b/nanddump.c
index b7341a5..396c8ca 100644
--- a/nanddump.c
+++ b/nanddump.c
@@ -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;