public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard@free-electrons.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] Fastboot behaviour with sparse images
Date: Thu, 22 Oct 2015 21:03:02 +0200	[thread overview]
Message-ID: <20151022190302.GC10947@lukather> (raw)
In-Reply-To: <20151022112254.GU23893@bill-the-cat>

On Thu, Oct 22, 2015 at 07:22:54AM -0400, Tom Rini wrote:
> On Thu, Oct 22, 2015 at 09:57:05AM +0200, Maxime Ripard wrote:
> > Hi Tom,
> > 
> > On Wed, Oct 21, 2015 at 10:09:28AM -0400, Tom Rini wrote:
> > > On Mon, Oct 12, 2015 at 03:43:01PM +0200, Maxime Ripard wrote:
> > > > Hi,
> > > > 
> > > > I'm currently writing the support in U-Boot for NAND-backed devices
> > > > using fastboot [1], and that work derived a bit to supporting the
> > > > sparse images.
> > > > 
> > > > For "regular" images that are being stored, we expect a pair of
> > > > download and flash commands. Simple.
> > > > 
> > > > Things start to get a bit more complex with sparse images that have
> > > > been split because of a max-download-size lower than the actual image
> > > > size.
> > > > 
> > > > Here, from what I could gather from various random blog posts, the
> > > > fastboot client implementation and dumping a few USB sessions, the
> > > > client simply creates several download / flash pairs, always on the
> > > > same partition, without any way to distinct that from several
> > > > subsequent writes issued by the user.
> > > > 
> > > > So, I'm guessing that the expectation is that the bootloader
> > > > implementation should store the last offset it wrote to, and simple
> > > > resume from there if the partition names in the flash commands are the
> > > > same, which would prevent two subsequent write on the same partition
> > > > by any client. Am I right?
> > > > 
> > > > A related question is when should we erase the NAND partition? Only
> > > > when doing fastboot erase, or also when doing fastboot write (which,
> > > > combined with the issue raised above, would also mean that we don't
> > > > want to do an erase on the whole partition everytime there's a flash
> > > > command on it).
> > > 
> > > I think for this last question, some experimentation with the existing
> > > tools might be required.  As there's no required explicit erase for MMC,
> > > I think it might make sense to say you erase nand up front and then
> > > write as anything else starts getting really tricky and we're just
> > > second-guessing the user.
> > 
> > Actually, the only FS the fastboot tool seems to be doing it for the
> > moment are ext4 and F2FS. It can probably be extended to UBI and raw
> > partitions, but that won't fix the tools that are bundled by the
> > distros at the moment.
> > 
> > So I guess we can always erase it now using the session counter: if we
> > are writing the first chunk, erase the whole partition, if we're not,
> > then simply flash it at the previous offset.
> > 
> > How does it sound?
> 
> Sounds workable but testing with the existing tools will be the key and
> the hard part here :(

Well, if we always erase when we write, the worst case scenario would
be one erase too many. It doesn't sound that bad, or hard.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151022/0215fabc/attachment.sig>

  reply	other threads:[~2015-10-22 19:03 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-12 13:43 [U-Boot] Fastboot behaviour with sparse images Maxime Ripard
2015-10-21 14:09 ` Tom Rini
2015-10-22  7:57   ` Maxime Ripard
2015-10-22 11:22     ` Tom Rini
2015-10-22 19:03       ` Maxime Ripard [this message]
2015-10-27 21:00 ` Colin Cross
2015-11-05  2:40   ` Maxime Ripard

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=20151022190302.GC10947@lukather \
    --to=maxime.ripard@free-electrons.com \
    --cc=u-boot@lists.denx.de \
    /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