background image

 
 

 
 

 
 

 
 

 
 

 
 

 

 

Linux RFS v1.3.0 Porting Guide 

 
 

 

      

 

 

 

 

            

       May 20-2008, Version 1.13 

 

 
 

 
 

 
 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 
 

 

 

Summary of Contents for Linux RFS v1.3.0

Page 1: ...Linux RFS v1 3 0 Porting Guide May 20 2008 Version 1 13 ...

Page 2: ......

Page 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...

Page 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...

Page 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...

Page 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...

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 V Linux RFS v1 3 0 Porting Guide ...

Page 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 ...

Page 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...

Page 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...

Page 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...

Page 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...

Page 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...

Page 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...

Page 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 ...

Page 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 ...

Page 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...

Page 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 ...

Page 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 ...

Page 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...

Page 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...

Page 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 ...

Page 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 ...

Page 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...

Page 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...

Page 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...

Reviews: