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.
|