From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Warren Date: Fri, 21 Aug 2015 16:01:56 -0600 Subject: [U-Boot] [U-Boot, 1/3] sysboot: Add support for ubifs to the sysboot command In-Reply-To: <55D6F5BF.4070205@redhat.com> References: <1440086655-1246-1-git-send-email-hdegoede@redhat.com> <55D6F5BF.4070205@redhat.com> Message-ID: <55D79FD4.5010107@wwwdotorg.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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.