[U-Boot] dfu: dfu and UBI Volumes
Pantelis Antoniou
panto at antoniou-consulting.com
Mon May 27 09:35:41 CEST 2013
Hi Guys,
On May 27, 2013, at 10:28 AM, Heiko Schocher wrote:
> Hello Lukasz,
>
> Am 27.05.2013 09:02, schrieb Lukasz Majewski:
>> Hi Heiko,
>>
>>> Hello Tom,
>>>
>>> Am 24.05.2013 19:12, schrieb Tom Rini:
>>>> On Fri, May 24, 2013 at 07:42:01PM +0300, Pantelis Antoniou wrote:
>>>>> Hi Heiko,
>>>>>
>>>>> On May 24, 2013, at 7:39 PM, Heiko Schocher wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> just digging in DFU support in U-Boot for an upcoming board
>>>>>> support based on an AM335x. This board support uses for example a
>>>>>> rootfs in an UBI Volume on a NAND flash, and this should be
>>>>>> updated with dfu ...
>>>>>>
>>>>>> How To do this? Current state on this board is to erase the rootfs
>>>>>> mtd partition with a nand erase and write the new image using
>>>>>> dfu_nand.c ... which calls in the end nand_write ... which is ...
>>>>>> lets say ... not the prefered way on an UBI volume ...
>>>>>>
>>>>>> How to solve this? Any ideas?
>>>>>
>>>>> Well, what would you like ideally to do? Why is nand_write not
>>>>> ideal for a UBI volume.
>>>>>
>>>>> Note that dfu will skip over the bad blocks...
>>>>
>>>> Presumably because they want to replace say ubi0:rootfs (and leave
>>>> ubi0:user-data and ubi0:u-boot-env and so forth alone) rather than
>>>> write in a new ubi container of everything.
>>>>
>>>> I would suggest that, so long as our existing UBI infrastructure
>>>> allows this, you add a new method, dfu_ubi which takes care of
>>>> programming things. This shouldn't be too bad to write as I've
>>>> heard the existing infrastucture was easily expanded for SPI (and
>>>> patches are pending a little more clean up prior to posting).
>>>
>>> This sounds easy ... but they have also raw nand partitions, for
>>> example spl partitions on one nand flash ... for which dfu_nand.c
>>> fits perfectly ... is it possible to use dfu_nand.c and another
>>> dfu_xxx.c at the same time?
>>
>> I'm not so familiar with nand devices handling, but in my opinion we
>> shall create dfu_ubi.c file.
>>
>> I think that, nand part of dfu handling shall be separated from ubi,
>> even if UBI itself is layed on nand.
>
> Yes, I tend also to this .. but not as a separte "dfu interface .."
> "dfu nand .." should stay, and each partition should know, if it
> is a raw nand, or UBI, or jffs2?,... as like in dfu_mmc.c ... but
> this should not be hardcoded in every dfu_xxx.c, instead it should
> be something like a subinterface ... if it is possible.
>
I'm not completely up to speed with UBI, but dfu_ubi seems to be the way
to go for me.
Looks like it's simple enough; erase (but don't step over the wear counters)
, write (but skip over the wear counters).
I don't know how smart you have to be with UBI version; be very careful
when the binary format of UBI changes.
>> However, Tom and Pantelis shall give their opinion, since they spent a
>> lot of time on forcing dfu_nand.c to work.
>
> Yep, that would be great, as I am a dfu beginner ;-)
>
> bye,
> Heiko
> --
> DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Regards
-- Pantelis
More information about the U-Boot
mailing list