2014-06-18 16:08 GMT+02:00 Baruch Siach <[email protected]>: > Hi Richard, > > On Wed, Jun 18, 2014 at 03:44:30PM +0200, Richard Genoud wrote: >> With the "skip bad block" option, nanddump is not dumping the right >> length if there's bad blocks. >> >> This patch moves the end read address each time a bad block is >> encountered. > > This changes nanddump behaviour from upstream historical --omitbad (-b; > removed in upstream d8b8f780ec3c), to existing skipbad, for which upstream > uses the --bb=skipbad command line parameter. To avoid confusion, we should > adapt to upstream command line parameter names, IMO. >
yeah, you are right, I verified with upstream nanddump, and it doesn't update the length on bad block. so, please ignore this patch. Thanks, richard. > Thanks, > baruch > >> Signed-off-by: Richard Genoud <[email protected]> >> --- >> miscutils/nandwrite.c | 17 ++++++++++++++--- >> 1 file changed, 14 insertions(+), 3 deletions(-) >> >> diff --git a/miscutils/nandwrite.c b/miscutils/nandwrite.c >> index 8c4da802f6b3..a3593adedc82 100644 >> --- a/miscutils/nandwrite.c >> +++ b/miscutils/nandwrite.c >> @@ -166,6 +166,10 @@ int nandwrite_main(int argc UNUSED_PARAM, char **argv) >> int bad_len = MIN(tmp, end_addr) - mtdoffset; >> dump_bad(&meminfo, bad_len, opts & OPT_o); >> } >> + /* with option skip bad block, increase the length */ >> + if (IS_NANDDUMP && (opts & OPT_b)) { >> + end_addr += (tmp - blockstart); >> + } >> mtdoffset = tmp; >> } >> } >> @@ -182,9 +186,16 @@ int nandwrite_main(int argc UNUSED_PARAM, char **argv) >> mtdoffset = next_good_eraseblock(fd, &meminfo, >> blockstart); >> if (IS_NANDWRITE) >> printf("Writing at 0x%08x\n", mtdoffset); >> - else if (mtdoffset > blockstart && !(opts & OPT_b)) { >> - int bad_len = MIN(mtdoffset, limit) - >> blockstart; >> - dump_bad(&meminfo, bad_len, opts & OPT_o); >> + else if (mtdoffset > blockstart) { >> + if (opts & OPT_b) { >> + /* omit bad block, but increase the >> length */ >> + end_addr += (mtdoffset - blockstart); >> + limit = MIN(meminfo.size, end_addr); >> + } else { >> + /* dump bad block if asked */ >> + int bad_len = MIN(mtdoffset, limit) - >> blockstart; >> + dump_bad(&meminfo, bad_len, opts & >> OPT_o); >> + } >> } >> if (mtdoffset >= limit) >> break; > > -- > http://baruch.siach.name/blog/ ~. .~ Tk Open Systems > =}------------------------------------------------ooO--U--Ooo------------{= > - [email protected] - tel: +972.2.679.5364, http://www.tkos.co.il - _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
