YAFFS is a filesystem designed specifically for the characteristics of NAND flash. Its well-proven primary features are:
There is a great deal of information about YAFFS available on this site. This page indexes that information and provides an overview of the product.
YAFFS is currently at version 2. YAFFS2 supports 2K-byte page flash as well as 512-byte page flash. (YAFFS1 only supports the original 512-byte page flash and is now in maintenance mode.) There is a minimal subset of the filesystem called YAFFS/Direct which is intended to be used in embedded systems, and can be licensed for use in proprietary systems. YAFFS is available to all under the GPL for use or evaluation; full details of CVS access are available
YAFFS 1 and 2 have both been deployed in numerous commercial applications, some in high volume. abd with large Flash arrays. It has been used in GPS receivers, train controllers, speech synthesisers, VOIP chip development kits and other applications.
We have a number of documents and papers describing how to use yaffs, how to customise it for your particular hardware/system, and the original considerations and filesystem design of the two versions.
The best overview information is currently this 28-slide presentation What it Does and How it Does it
A useful historical Timeline on development is here
YAFFS Direct Interface - User Guide, describing how to port YAFFS to an embedded environment or RTOS using the YDI 'personality' module'.
Brief notes on How to use it on GNU/Linux
A memory footprint analysis putting some numbers on 'low memory footprint'.
YAFFS embedded structure: YAFFS embedded structure
There is a YAFFS mailing list for the development and discussion of YAFFS. It's a fairly low-traffic list. You will be emailed and asked to confirm your subscription request. You can also browse and search the YAFFS mailing list archives.