[U-Boot] dfu: dfu and UBI Volumes

Heiko Schocher hs at denx.de
Wed May 29 06:35:27 CEST 2013


Hello Tom,

Am 28.05.2013 23:16, schrieb Tom Rini:
> On Tue, May 28, 2013 at 11:01:09PM +0200, Wolfgang Denk wrote:
>> Dear Tom,
>>
>> In message <20130528172309.GF5829 at bill-the-cat> you wrote:
>>>
>>>> Of course this can't yet apply to writing files on file systems since the
>>>> current API in U-Boot misses the append feature, but this could be applied to
>>>> program raw memory partitions, including UBI images.
>>>
>>> Correct.  We can write a whole UBI image, today, of NAND size,
>>> regardless of DDR size.  But modifying UBI volumes (so UBIFS or your
>>
>> I don't think so.  To write a UBI volume on an existing UBI device,
>> you would use the "ubi write" command.  This translates into a call of
>> ubi_volume_write(char *volume, void *buf, size_t size)  which means
>> the size must be known before you start writing; as far as I can tell
>> ubi_volume_write() does not support incremental write operations of
>> individual "parts" of a volume.
> 
> OK.  A very quick read of ubi_volume_write leads into the guts of the
> write being in drivers/mtd/ubi/upd.c and it feels like you could
> actually do the volume write in chunks with ubi_start_update() and
> ubi_more_update_data() (and maybe some other housekeeping bits).  It
> might take a bit more work since it looks like looks like both functions
> rely on knowing the size at the start, but that's just to make sure the
> size will fit in the volume.

Yes, I think so too ... seems some work, but not unsolveable ...

Hmm.. is it possible to get the filesize over dfu on startup? (I hope
so, as it makes no sense to transfer a file, if it does not fit in the
partition ... )

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list