linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Mike Crowe <mac@mcrowe.com>
Cc: goliath <david.oberhollenzer@sigma-star.at>,
	linux-mtd@lists.infradead.org,
	Richard Weinberger <richard@nod.at>
Subject: Re: [PATCH 0/2] Support skipping bad blocks when seeking to start address
Date: Thu, 5 Jan 2017 15:48:24 +0100	[thread overview]
Message-ID: <20170105154824.5c9e97ee@bbrezillon> (raw)
In-Reply-To: <20170105141834.GA3198@mcrowe.com>

Hi Mike,

On Thu, 5 Jan 2017 14:18:34 +0000
Mike Crowe <mac@mcrowe.com> wrote:

> On Thursday 05 January 2017 at 14:38:23 +0100, goliath wrote:
> > Some concerns have been raised regarding how your specific boot
> > loader clutch works and whether we should really add tool support
> > for it.
> > 
> > If your boot loader seeks to a specific erase block by counting
> > only good blocks (to load the kernel or some second stage?), what
> > happens if another block in between goes bad? Does that just brick
> > your board or do you have to move the data around all the time to
> > account for that?  
> 
> The blocks in-between don't get written so they can't be marked bad.

Maybe not the block in between, but the first block used to store your
2nd stage bootloader (or whatever your store at this offset) might
become bad, which means your data will be moved to the next block (or
possibly farther).

> If
> they develop bit errors that can't be corrected then the board will stop
> booting because the bootloader can't be loaded.

Okay.

> 
> > What kind of boot loader is this? Is it widely used or is that
> > algorithm used by a number of other boot loaders? In that case
> > it would make sense to add support for this. However, if it is
> > just a one-time fix for a vendor specific boot loader, it might
> > not be reasonable to merge it into upstream mtd-utils. Or is
> > there some other use case for this?  
> 
> The bootloader is provided by our SoC vendor and only used with their
> family of chips. It has various parts that are loaded independently and we
> need to upgrade some of them. In an ideal world these would be in separate
> partitions and we wouldn't have this problem, but we need to maintain
> backward compatibility.
> 
> I've used other bootloaders in the past that also have two stages, and the
> second stage is merely appended at the next good block.

So the 1st stage bootloader is trying to load data from the next good
block. I guess the 1st stage bootloader is also programmed using this
approach (skip bad blocks if any), which would explain why you need
this 'adjust offset after skipping bad blocks' feature.

> 
> mtd-utils already supports reading and writing flash whilst skipping
> blocks. Adding the ability to start reading or writing at an offset that
> takes into account previous bad blocks seems to be a generically-useful
> feature to me.
> 
> However, if this is considered to be too niche a use case then we can just
> continue to apply the patch ourselves.

I don't think that's the idea here. We just wanted to be sure what was
the exact use case you had.
I think this request is acceptable (even if I don't like the option
name :-)), but I'll let Richard and David decide what to do with this
patch.

Thanks for the explanation.

Boris

  reply	other threads:[~2017-01-05 14:48 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-04 14:18 [PATCH 0/2] Support skipping bad blocks when seeking to start address Mike Crowe
2017-01-04 14:18 ` [PATCH 1/2] nandwrite: Add --skip-bad-blocks-to-start option Mike Crowe
2017-01-04 14:18 ` [PATCH 2/2] nanddump: " Mike Crowe
2017-01-05 13:38 ` [PATCH 0/2] Support skipping bad blocks when seeking to start address goliath
2017-01-05 14:18   ` Mike Crowe
2017-01-05 14:48     ` Boris Brezillon [this message]
2017-01-05 15:04       ` Mike Crowe
2017-01-09 12:18         ` David Oberhollenzer
2017-01-09 14:51           ` Mike Crowe
2017-01-11 16:22             ` Mike Crowe
  -- strict thread matches above, loose matches on Subject: below --
2017-01-17 11:54 Mike Crowe
2017-01-23  6:47 ` David Oberhollenzer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170105154824.5c9e97ee@bbrezillon \
    --to=boris.brezillon@free-electrons.com \
    --cc=david.oberhollenzer@sigma-star.at \
    --cc=linux-mtd@lists.infradead.org \
    --cc=mac@mcrowe.com \
    --cc=richard@nod.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).