[U-Boot] [U-Boot, 1/3] sysboot: Add support for ubifs to the sysboot command

Hans de Goede hdegoede at redhat.com
Sat Aug 22 20:04:55 CEST 2015


Hi,

On 22-08-15 00:01, Stephen Warren wrote:
> On 08/21/2015 03:56 AM, Hans de Goede wrote:
>> Hi,
>>
>> On 20-08-15 21:53, Stephen Warren wrote:
>>
>>
>>  > On 20-08-15 18:04, Hans de Goede wrote:
>>>> ubifs does not go though the generic block layer because mtd devices
>>>> are special, so the "any" filesystem option to sysboot does not work,
>>>> this adds support for a "ubifs" filesystem to the sysboot command which
>>>> makes it possible to boot from ubifs using an extlinux.conf file.
>>  >
>>  > Why are they special? Surely ubifs support can be integrated into the
>>  > filesystem layer, thus removing the need for patches 1 and 3 in this
>> series?
>>
>> I looked into that before going that root, the problem is that the
>> filesystem layer assumes that files sit on top of block devices,
>> and all the filesystem layer code operates on block_dev_desc_t devices.
>>
>> But ubifs operates on ubi volumes which in turn operate on raw nand,
>> this has vastly different characteristics then regular block devices.
>>
>> ubifs deals with erase-blocks, finding or creating a free
>> erase block when it needs to write stuff, then erasing an entire
>> block and writing part of it a page-size at a time where
>> erase-block-size != page-size, and both are typically of values
>> much larger then disk sector-sizes. There is no notion of erase
>> blocks in the fs / block layer.
>
> Can't the filesystem layer simply be taught how to look up block devices for most filesystems, but look up volumes for other filesystems? I still see no fundamental reason we can't abstract this so higher level SW doesn't have to have special cases.

Ok, so I've given this a second shot, and you are right, it is possible
to make ubifs work with the generic filesystem code.

I'll post a v2 using that.

Regards,

Hans



More information about the U-Boot mailing list