Samsung V1.3.0 Tablet User Manual


 
1 Introduction
This chapter describes the overview and system architecture of RFS. It also covers the
information about low-level flash memory
partitions.
1.1 Overview
Linux RFS (Linux Robust FAT File System) is a FAT compatible file system to use
OneNAND/NAND flash memory as storage on any consumer electronic devices. As its name
implies, Linux RFS runs in the Linux kernel and is fully compatible with FAT file system
standards (FAT16/
32). For ‘robustness’, it provides a journaling based error recovery
mechanism, which guarantees that the file system runs at all times even if there is a sudden
power loss.
Currently, there are a few open-source projects that implement NAND based flash file systems
such as JFFS2, YAFFS and YAFFS2. However, they have a limited applicability to brand-new
OneNAND flash memory devices that feature advanced technologies to improve performance.
RFS supports all of the OneNAND flash memory devices in the market and is optimized for those
devices. RFS can deliver much better read/write performance compared to the existing
solutions.
1.2 Features
The following are RFS features.
FAT compatible file system which supports FAT16/32
Robust error-recovery system based on journaling
Provide POSIX-compatible interface
Supports Linux kernel 2.4.X and 2.6.X (tested on MontaVista Linux)
Supports demand paging
Packaged as a loadable kernel module
1.3 Architecture
Figure 1-1 shows typical file system architecture where RFS is used for OneNAND flash memory.
Linux RFS flash file system has been divided into different layers based on their operations. It
consists of following layers: FAT file system layer, flash block device driver layer, sector
translation layer, block management layer, and low level device driver layer.
Low level device driver layer code for OneNAND
TM
is provided with RFS package and is tested
on OMAP2420 board. For other chipsets, you need to write your own low level driver code. A
brief description about each of these components is given here.
1 Linux RFS v1.3.0 Porting Guide