Hi Richard,

On Wed, Jun 18, 2014 at 04:59:49PM +0200, Richard Genoud wrote:
> 2014-06-18 16:08 GMT+02:00 Baruch Siach <[email protected]>:
> > 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.

I'm have no objection to this change. It matches the change made in upstream 
mtd-utils code (commits 5dfb5a6adc7311 and d8b8f780ec3c916). I just think that 
we should also change the command line parameters name to match (from -b to 
--bb=skipbad; see mtd-utils commit c2c3cb928935c).

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

Reply via email to