8 Flash Software Group, Samsung Electronics, Co., Ltd.. ⓒ All rights reserved. Trademarks RFS is trademark of Flash Software Group, Samsung Electronics Co., Ltd.. in Korea and other countries Restrictions on Use and Transfer All software and documents of RFS are commercial software.
Page 4
Preface This document is a porting guide of RFS developed by Flash Software Group, Memory Division, Samsung Electronics. It describes Linux RFS porting procedure to user's target platform. Purpose This document is RFS Porting Guide. This document explains the definition, architecture, system requirement, and porting tutorial of RFS.
Building Linux Kernel and RFS Kernel Module ...9 Using the NLS (Native Language Support) ... 12 3.3.1 Kernel Configuration for NLS ... 12 3.3.2 Mounting RFS with codepage ... 14 Appendix ... 16 Table of Contents Linux RFS v1.3.0 Porting Guide...
Page 7
Tables Table 1 Host System Requirements ... 4 Table 2 RFS Static Memory Usage (in bytes) ... 6 Table 3 Hardware information of OMAP2420... 6 Linux RFS v1.3.0 Porting Guide...
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. is provided with RFS package and is tested Linux RFS v1.3.0 Porting Guide...
BML Block Device Driver. • RFS: This is a read-write Samsung’s file system and is used to manage the modifiable data part of the Linux file system directories, i.e. configuration files and applications data files.
Page 11
It extends NAND flash memory life span. LLD is an abbreviation of Low Level Device Driver. It performs actual read/write/erase operation to NAND flash memory as a device driver. during the address translation. , which actually performs Linux RFS v1.3.0 Porting Guide...
‘rfs’ contains source files related to Robust FAT and ‘xsr’ contains source files related to OneNAND block device driver. ‘scripts’ contains install scripts and ‘util’ contains several tools to maintain RFS. Table 1 Host System Requirements Linux Native GCC compiler & Cross-Compiler About 50MB Linux RFS v1.3.0 Porting Guide...
(ISA), 32K-byte instruction and 3K-byte data 64-entry instruction and 64-entry data write buffer Vector floating-point processor Jazelle Java accelerator Select OneNAND device according to your requirement (1.8v/3.3v) Total 45,796 4,288 87,788 4,292 133,584 data, chip-selects, Linux RFS v1.3.0 Porting Guide...
= Set the architecture type Now run “scripts/rfs_install.sh [kernel_type]” at $(TOP_DIR)/ Hardware Configuration Installation of Linux RFS Sources Kernel Configurations for RFS PAM Configurations Building Linux Kernel and RFS Kernel Module Figure 3-1 Linux RFS Porting Procedure Linux RFS v1.3.0 Porting Guide...
As shown below, you should get sub-menu in $(KERNEL_TOP_DIR) as the result of ‘make menuconfig’. Figure 3-2 shows the general main menu of kernel configuration. Select “File systems” menu to go on to the next step. Figure 3-2 Main screen of Kernel menu Linux RFS v1.3.0 Porting Guide...
You can confirm the following make options typing “make menuconfig” on the shell command line. You should turn on the make option for “EXPERIMENTAL” kernel features in .config file. Linux RFS v1.3.0 Porting Guide...
Figure 3-4 Code maturity level You should set the make option for “COMPRESSED ROM FILE SYSTEM (CRAMFS)” in file system option during make menuconfig because the root file system is managed by CRAMFS. Linux RFS v1.3.0 Porting Guide...
Then, the kernel image file named ‘uImage’ will be created if no error occurs. As mentioned earlier, the RFS sources are compiled and linked as a loadable kernel module. To make the kernel modules, do the following. shell> make modules shell> make modules_install Linux RFS v1.3.0 Porting Guide...
This default codepage is used to mount the RFS Filesystem if the “codepage” mount option is not set. If you select <Y> for the “Support NLS on RFS Filesystem”, you should select the “Native Language Support” menu at “File system” to open the NLS configuration like the following. Linux RFS v1.3.0 Porting Guide...
Filesystem like MS-DOS to use the “Native Language Support”. When you didn’t select “FAT32 & long file name support”, you can’t find the menu about “Support NLS on RFS Filesystem” like the following. Linux RFS v1.3.0 Porting Guide...
This command mounts the RFS Filesystem found on ‘/dev/stl0/3’ at the directory ‘/tmp’. If you didn’t select the NLS support when you built the kernel image, this command will success and RFS is able to support filenames with the 7-bit ASCII characters only. Linux RFS v1.3.0 Porting Guide...
Page 23
For example, if the default codepage is “codepage 437”, then RFS supports filenames with the native language of ‘cp437’ character set. If you selected the NLS support and didn’t set the default codepage, this command will fail. Linux RFS v1.3.0 Porting Guide...
Additional notice Once RFS is compiled with this option, RFS must be mounted with ‘codepage’ option or compiled with the default codepage. CONFIG_RFS_DEFAULT_CODEPAGE Description Linux RFS v1.3.0 Porting Guide...
Page 25
Behavioral description To get an inode, RFS uses a iget_locked() which is general kernel interface. But some kernel version don’t provide a iget_locked() interface especially below the Linux kernel version 2.4.25. verbosity Minimal Audible Loud Noisy Linux RFS v1.3.0 Porting Guide...
Page 26
This option is used for advanced cluster allocation. Current version support maximum 50 numbers for pre clusters allocation. Behavioral description Amount of memory used in cluster allocation will be (CONFIG_RFS_PRE_ALLOC * cluster size) Additional notice Linux RFS v1.3.0 Porting Guide...