YAFFS for eCos

About

YAFFS is a filesystem for NAND flash. It is log-structured, offering wear-levelling, bad block management, error correcting codes and checkpoint support for fast mounting. YAFFS works in conjunction with eCosCentric's NAND layer and device drivers. You can find a detailed overview of YAFFS and the underlying NAND layer on the YAFFS middleware page.

Licensing note

YAFFS is available for free under the GNU GPL (General Public License). This is not the same as the GPL-with-exception license used in general for eCos. If you distribute an application which makes use of the GPL version of YAFFS, you are (broadly speaking) obliged to licence your application and all other parts of the system under the GPL, and to make all the source code available. If you are unwilling or unable to do this you must not use the GPL version of YAFFS; contact eCosCentric to obtain YAFFS under a commercial license. Other than the license, there is no technical difference between the GPL and commercially-licensed versions.

Source Code Access

The GPL licensed version of YAFFS is available as an eCos add-on package that can be used with both eCosPro and the public eCos repository.

The underlying NAND layer and drivers are already incorporated in eCosPro v3.0.3 and later releases. Users of these releases should therefore ignore the NAND support section below. At present the NAND layer is not incorporated into the public eCos repository, so its users are required to download and install the NAND support package and patches to make use of YAFFS.

YAFFS

The current stable version of YAFFS is available as a standard eCos installation package (EPK).

A mercurial repository is also available that provides access to the development history and the ability to pull the latest "bleeding edge" sources. This can be browsed and cloned from http://hg-pub.ecoscentric.com/yaffs-ecoscentric/ in the usual way. While this is a standalone repository, advanced users may find it convenient to locally pull from it and merge into a clone of the ecos or nand-ecoscentric repository.

NAND support

Users of the public eCos repository must also download and install the NAND layer support.

The recommended way to obtain the NAND package is by downloading and installing the latest EPK file.

You must also patch NAND support in to your platform HAL. To apply either of these patches, use a command along the lines of:
patch -p2 -d /path/to/your/ecos/packages < patch

Alternatively, a Mercurial repository is available that comprises of the eCos public sources with the NAND support fully patched into it http://hg-pub.ecoscentric.com/nand-ecoscentric/. This can be browsed and cloned in the usual way.

Installing and Configuring

Public eCos repository users should first install the relevant HAL patch and NAND EPK before installing the YAFFS EPK. eCosPro users need only install the YAFFS EPK. To install a downloaded EPK, use the eCos Package Administration Tool. See the Package Repository documentation for details.

To add YAFFS support to a default eCos configuration, use ecosconfig or configtool to add the CYGPKG_IO_FILEIO, CYGPKG_FS_YAFFS and CYGPKG_IO_NAND packages. Some configurations will require further packages to be added to satisfy the dependencies. A YAFFS filesystem can then be mounted and accessed like any other on the system.

Documentation

For more details, refer to the YAFFS package documentation, filesystem layer documentation and NAND library documentation.

   
         
 
  Copyright © 2003-2012 eCosCentric Limited Privacy & Legal Statements