JFFS2 NAND Flash support arrives in stable Linux tree
Oct 13, 2003 — by LinuxDevices Staff — from the LinuxDevices Archive — 7 viewsGood news: JFFS2's support for NAND Flash memory has been merged into the 2.6.0-test tree. According Red Hat's David Woodhouse, JFFS2 on NAND has received heavy testing under the 2.4 kernel, and is present in the handhelds.org kernel tree. Support for eCos is in progress. This is welcome news for device developers seeking to reduce costs by using embedded Linux as the OS and low-cost NAND Flash for program and data storage.
JFFS2 is a journaling filesystem for flash devices that handles wear-leveling and other restrictions of Flash technology efficiently. It has seen extensively use in projects such as the Familiar Project.
NAND Flash memory is the newer, cheaper kind of Flash memory. Unlike the traditional NOR Flash, which is directly accessible like an EPROM or SRAM, NAND is addressable only through a single 8-bit bus used for both data and addresses, with separate control lines. JFFS2 for NOR Flash has been officially stable since the 2.4.12 Linux kernel release.
Woodhouse credits Texas Instruments for “generous sponsorship” — they “kindly paid Red Hat to lock me in a room for a few weeks with the JFFS2 code, some NAND flash, and a vat of coffee” — that led to implementation of the difficult parts of JFFS2 on NAND. These included “the details of flushing the write-behind buffer appropriately upon fsync(), sync() and other stimuli, and the code to deal with failure to write the write-behind buffer — recovering its contents and writing them out elsewhere on the flash to avoid data loss.”
In addition to TI, Woodhouse thanked Thomas Gleixner for his work on NAND hardware drivers as well as on JFFS2/NAND.
Inclusion in the stable Linux kernel tree traditionally signifies that code is ready for production use, but Woodhouse admonishes users to test the new code carefully: “While I'm fairly confident of the behaviour and it's been stress testing both with and without simulated errors on a DiskOnChip on my desk for the best part of a week now, it remains relatively new code and should therefore be treated with respect. You are advised to undertake your own testing under your own particular usage patterns.”
Besides its new support for NAND devices, the recent development phase brought JFFS2 bug fixes. “The CVS tree also now contains changes to the garbage-collector which affect the way it merges data nodes, which should significantly improve its progress,” says Woodhouse. “These should be of benefit even on NOR flash, and may well allow us to reduce the free-block thresholds which people keep complaining about.”
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.