FTL of compact flash card

Henrik Nordstrom hno at marasystems.com
Wed Jan 1 09:55:06 EST 2003

On Wed, 1 Jan 2003, Charles Manning wrote:

> >From what I read here, what you want is a mapping that provides a block-wise 
> interface to the flash.
> JFFSx is a file system. That will not do what you want.
> What you need is some block-like FTL like NFTL or whatever goes on inside a 
> Compact Flash or ATA card. I am not aware of any open source code that will 
> do what you want. As far as I can tell all this code is fiercely guarded by 
> companies like Sandisk and MSystems.

There is at least 4 such layers in the Linux MTD kernel sources:

  NFTL. Compatible with the NFTL design and implementation by MSystems for
their DOC devices. However, any use of NFTL on other devices will likely
be in violation to their patent unless a license is aquired.

  FTL. Also covered by a M-Systems patent with a special grant for use in
PCMCIA. See ftl.c for details.

  mtdblock, linear block level access to flash memory. No wear leveling as
far as I know.

  The journalling level of jffs. Has wear leveling.

  The journalling level of jffs2. Has wear leveling.

For most purposes I suspect actually using the JFFS2 filesystem is the
best fit. Gives you efficient wear leveling (inlcluding not caring about
deleted content) and reasonable data integrity protection.


More information about the linux-mtd mailing list