background image

                        

 

2         

Linux 

RFS 

v1.3.0 

Porting 

Guide 

 

 

 

 

Figure 1-1 Linux RFS Architecture 

 

†

 File Systems 

Linux file system for flash devices is managed by two file systems: CRAMFS and RFS. Both of 
these file systems run under Linux VFS (Virtual File System). 

 

 CRAMFS: This is a read-only file system included in a standard Linux kernel distribution. 

CRAMFS is used to manage the read-only part of Linux file system directories, i.e. execution 

code, libraries, and ROM data files. Because CRAMFS supports run-time code decompression, 
you can store code in a compressed form, which results in high space efficiency. CRAMFS 

runs on top of the 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. 

It does not support compression feature. RFS runs on top of the STL Block Device Driver. 

 

†

 XSR Block Device Drivers 

Block device drivers are used to provide common block device APIs to file systems. For each of 

the block device drivers, separate block device files provide device interface methods like 
mount and format to applications. RFS needs two kinds of block device driver interface. 

 

 BML Block Device Driver: This block device driver is used to provide driver functions for 

the device files /dev/bml0/*. This block device driver acts right upon the BML. There is no 

logical to physical address translation because there is no FTL-like software layer between 
BML and this driver layer. For example, logical sector number n directly maps to physical 

sector number n. Data write to a sector involves following sequence of low-level flash 
operations:  

 
1. Block copy for back-up 

2. Block erase 
3. Copy back for non-modified pages 

Содержание Linux RFS v1.3.0

Страница 1: ...Linux RFS v1 3 0 Porting Guide May 20 2008 Version 1 13 ...

Страница 2: ......

Страница 3: ...use redistribute modify and purchase only in accordance with the terms of the license agreement you entered into with Flash Software Group Samsung Electronics Co Ltd All advertising materials mentioning features or use of this software must display the following acknowledgement This product includes RFS written by Flash Software Group Samsung Electronics Co Ltd Contact Information Flash Software G...

Страница 4: ...ical addresses when accessing to flash memory IDE Integrated Development Environment CRAMFS Compressed ROM File System RFS Robust FAT File System VFS Virtual File System XSR eXtended Sector Remapper MTD Memory Technology Device LLD Low Level Device Driver Sector The file system performs read write operations in a 512 byte unit called sector Page NAND flash memory is partitioned into fixed sized pa...

Страница 5: ... Flash Software Group 1 4 2006 02 13 Release Thomas 1 5 2006 03 16 Release Amit 1 6 2006 03 23 Release Amit 1 7 2006 04 19 RFS1 2 1 release Amit 1 8 2006 05 10 DPM porting added Seung Jin Jung 1 9 2006 09 27 NLS added Ha Young Kim 1 10 2006 09 29 H W int added Kyu Hyung Kim 1 11 2006 12 26 Review comments Vishu Kumar 1 12 2007 03 19 SAM factor modifications Seung Jin Jung 1 13 2008 05 20 Change ve...

Страница 6: ...RFS Package 4 2 2 2 Source Files List 5 2 2 3 RFS Memory Usage 6 2 3 Hardware Environment 6 3 Porting Linux RFS 7 3 1 Porting Overview 7 3 2 Porting Procedure 7 3 2 1 Installation of Linux RFS Sources 7 3 2 2 Kernel Configuration for RFS 8 3 2 3 Building Linux Kernel and RFS Kernel Module 9 3 3 Using the NLS Native Language Support 12 3 3 1 Kernel Configuration for NLS 12 3 3 2 Mounting RFS with c...

Страница 7: ...Tables Table 1 Host System Requirements 4 Table 2 RFS Static Memory Usage in bytes 6 Table 3 Hardware information of OMAP2420 6 V Linux RFS v1 3 0 Porting Guide ...

Страница 8: ... the Source Tree 5 Figure 3 1 Linux RFS Porting Procedure 7 Figure 3 2 Main screen of Kernel menu 8 Figure 3 3 File system screen of Kernel menu 9 Figure 3 6 Code maturity level 10 Figure 3 7 CRMAFS OPTION Settings 11 Figure 3 9 RFS Filesystem configuration for VFAT 12 Figure 3 10 NLS Native Language Support configuration 13 Figure 3 11 RFS Filesystem configuration for FAT16 14 ...

Страница 9: ...h 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 Supp...

Страница 10: ... configuration files and applications data files It does not support compression feature RFS runs on top of the STL Block Device Driver XSR Block Device Drivers Block device drivers are used to provide common block device APIs to file systems For each of the block device drivers separate block device files provide device interface methods like mount and format to applications RFS needs two kinds o...

Страница 11: ...anslates the virtual address from the upper layer into the physical address At this time BML does the address translation in consideration of bad block and the number of NAND device in use BML accesses LLD2 which actually performs read write or erase operation with the physical address Note Each layer of XSR can be operated separately as a module Thus STL can be used with other layer which has sam...

Страница 12: ...inux RFS Package You can make a RFS directory to be the top directory of this project and extract source files from the package file using the shell command It is also assumed that the TOP_DIR also contains the Linux kernel source directory where RFS will be applied shell cd TOP_DIR shell tar xvjf rfs 1 3 x tar bz2 Then some directories such as RFS RFS TOOLS etc are created under RFS_TOP_DIR There...

Страница 13: ...nux RFS Source Files Annotated on the Source Tree Here are brief descriptions about c files RFS_TOP_DIR fs rfs FAT and logging for reliability fcache c FAT cache FAT entry handling functions cluster c FAT cluster FAT table handling functions code_convert c Dos name and Unicode name handling operations dir c Directory handling functions dos c FAT directory entry Manipulation and management operatio...

Страница 14: ...dware information about OMAP2420 Table 3 shows hardware information about OMA2420 Table 3 Hardware information of OMAP2420 CPU ARM1136JF S core and TMS320C55x DSP core Memory SRAM 640K bytes of shared inetrnal RAM External Memory Interface 1 General Purpose Memory Controller GPMC Up to 100MHz NOR flash NAND flash SRAM and PSRAM asynchronous and synchronous protocols 16 bit data up to eight chip se...

Страница 15: ... RFS on your target Platform 3 2 Porting Procedure This section will explain you in detail about porting procedure 3 2 1 Installation of Linux RFS Sources The first thing you should do is to install the Linux RFS sources into the target system s kernel source tree This step is very easy to fulfill Extract Linux RFS source files from the package file on your Linux host PC as explained in Section 2 ...

Страница 16: ...P_DIR Shell RFS_TOP_DIR scripts rfs_install sh 24 3 2 2 Kernel Configuration for RFS 3 2 2 1 Menu Configuration of Kernel for RFS 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 ...

Страница 17: ...y on the target for making device nodes used by XSR block device driver The detailed usage of this program is described in Ftools Utility Guide document 3 2 3 Building Linux Kernel and RFS Kernel Module In this build step the first thing you should do is to check the kernel make options Following are the make options you should check You can confirm the following make options typing make menuconfi...

Страница 18: ...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 ...

Страница 19: ...uild the kernel type the following commands in sequence shell cd KERNEL_TOP_DIR shell make clean shell make dep shell make uImage 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 11 Linux RFS v1 ...

Страница 20: ...re the NLS option you can make only the name with 7 bit ASCII characters 3 3 1 Kernel Configuration for NLS To support filenames with the native language characters you have to set some kernel configurations like the following As shown below you should select File systems menu at the Main menu of make menuconfig Figure 3 6 RFS Filesystem configuration for VFAT The menu Support NLS on RFS Filesyste...

Страница 21: ...cause that script makes some changes at the configuration file of the Filesystem But if you don t use rfs_install sh or Native Language Support option isn t turned on you need to do the following At the 2 6 kernels you can explicitly select Native Language Support at the menu of File system and be enable to select the proper codepage At the 2 4 kernels the option Native Language Support is automat...

Страница 22: ...e If you want to use RFS Filesystem supporting NLS you should use codepage option to mount RFS Filesystem like the following Shell mount t rfs dev stl0 3 tmp o codepage cp949 This command mounts the RFS Filesystem found on dev stl0 3 at the directory tmp If you selected the NLS support when building the kernel image for the target the mount option codepage cp949 sets the default codepage as cp949 ...

Страница 23: ...f you selected the NLS support and the default codepage this command will success if only the default codepage is configured and built 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 15 Linux RFS v1 3 0 Porting Guide ...

Страница 24: ... addition the features related to this option such as a long file name and a Unicode conversion will not be available any more z CONFIG_RFS_SYNC_ON_CLOSE Description To support the file sync operation at file close time Behavioral description The file is synchronized at close call When a file is opened by multiple processes the file is synchronized at the last close call Additional notice None z C...

Страница 25: ...y Additional notice Default debugging level is 0 that won t print anything z CONFIG_RFS_MAPDESTROY Description This option is to improve the performance by means of the stl map deletion Behavioral description This option enables RFS to use the stl map deletion It has dependency on the STL block device If the STL block device is included as a static or module in kernel it will be available This opt...

Страница 26: ...or CEE 3 1 this option should be enabled Default is enable z CONFIG_RFS_VERSION Description This option is used for RFS version string Behavioral description None Additional notice z CONFIG_RFS_PRE_ALLOC Description 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 alloc...

Отзывы: