Flash File Systems or Translation Layers?

Jim Thompson jim at netgate.com
Thu May 18 17:50:59 UTC 2006


On May 18, 2006, at 7:06 AM, marty fouts wrote:

> On 5/18/06, Jim Thompson <jim at netgate.com> wrote:
>>
>> There is at least one 'other' important bootloader for this work:
>> 'redboot'.  (But redboot supports (or can be made to support) jffs2.
>>
>
> The ARM board I'm currently using has redboot on it, so I've done some
> investigation. It looks like ecos/redboot are pretty much dead.

I have no idea how you got that impression, but ecos/redboot are at  
least as "alive" as linux is, and more
popular than u-boot.  (I had my mitts on u-boot back when it was  
"ppcboot".)

>> Still having a bootloader that knows how to 'read' the filesystem
>> isn't that important, as long as you can store the kernel somewhere
>> other than >in< the filesystem.   No "dinking" needed.  (are you
>> aware that 'dink' is also a bootloader (for ppc)?)
>
> Agreed. This seems to be a common approach in shipping devices, and it
> has advantages that make it appealing.

What is "this"?
>
>> We >do< want a FTL or FFS, it doesn't >have< to be JFFS2, but JFFS2
>> has many nice features (on the fly compression, wear-leveling, etc.)
>> so its worth studying, at least.
>
> JFFS2 has a built in design flaw. The 'node' model that it uses
> requires that the entire file system be read during boot. On large
> NAND devices with nearly full file systems, this can lead to long
> delays before the file system is in a state where it can be written
> to.  (I've seen delays of over 20 minutes on actual devices.)
>
> This is why the authors were off designing JFFS3.  Definitely
> investigate JFFS2, especially reading the archives of the MTD mailing
> list, but I'd strongly advise against modeling a system on its data
> structures.

In practice this is only a problem for systems with a >lot< of  
flash.  Most of the boards that are
interesting have 4-16MB of flash.

>
> At PalmSource last year, Mike Chen and myself did an implementation of
> LFS that was NAND-aware for PalmOS Cobalt (the one that never shipped)
> that seemed to have reasonable performance.
>
> For NAND there's also YAFFS2, which is GPLed, and so would need to be
> studied rather than used. (The YAFFS mailing list has a few
> discussions on the limitations of the MTD layer wrt to file systems,
> also.)
>
> I'm aware of several commercial flash file systems for NAND and
> they've all taken the approach of having a block-translation layer
> that handles all of the wear-leveling and block remapping issues.
> Having worked on NAND file systems tof both kinds, I'd particularly
> recommned the separation model.


I don't think we can restrict ourselves to supporting only NAND  
flash.   In particular, Intel's "Strataflash" (and the Micron (etc)  
equivalents are all NOR-based.




More information about the freebsd-small mailing list